mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-24 20:25:32 -04:00
d3c5ebd041
Summary: Nodes that have no uses are eventually pruned when they are selected from the worklist. Record nodes newly added to the worklist or DAG and perform pruning after every combine attempt. Reviewers: efriedma, RKSimon, craig.topper, spatel, jyknight Reviewed By: jyknight Subscribers: jdoerfert, jyknight, nemanjai, jvesely, nhaehnle, javed.absar, hiraditya, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58070 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357283 91177308-0d34-0410-b5e6-96231b3b80d8
31 lines
1.0 KiB
LLVM
31 lines
1.0 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
; RUN: llc < %s -mtriple=powerpc64le-unknown-unknown -verify-machineinstrs | FileCheck %s --check-prefix=CHECKLE
|
|
; RUN: llc < %s -mtriple=powerpc64-unknown-unknown -verify-machineinstrs | FileCheck %s --check-prefix=CHECKBE
|
|
|
|
define void @pr39478(i64* %p64, i32* %p32) {
|
|
; CHECKLE-LABEL: pr39478:
|
|
; CHECKLE: # %bb.0: # %entry
|
|
; CHECKLE-NEXT: lbz 3, 4(3)
|
|
; CHECKLE-NEXT: stb 3, 0(4)
|
|
; CHECKLE-NEXT: blr
|
|
;
|
|
; CHECKBE-LABEL: pr39478:
|
|
; CHECKBE: # %bb.0: # %entry
|
|
; CHECKBE-NEXT: lbz 3, 3(3)
|
|
; CHECKBE-NEXT: stb 3, 3(4)
|
|
; CHECKBE-NEXT: blr
|
|
entry:
|
|
%tmp32 = load i64, i64* %p64, align 8
|
|
%tmp33 = load i32, i32* %p32, align 4
|
|
%tmp34 = and i32 %tmp33, -256
|
|
%tmp35 = lshr i64 %tmp32, 32
|
|
%tmp36 = shl nuw nsw i64 %tmp35, 24
|
|
%tmp37 = trunc i64 %tmp36 to i32
|
|
%tmp38 = call i32 @llvm.bswap.i32(i32 %tmp37)
|
|
%tmp39 = or i32 %tmp38, %tmp34
|
|
store i32 %tmp39, i32* %p32, align 4
|
|
ret void
|
|
}
|
|
|
|
declare i32 @llvm.bswap.i32(i32)
|