1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-31 07:52:55 +01:00
llvm-mirror/test/CodeGen/Generic/dag-combine-crash.ll
Nadav Rotem 626e9199af After reducing the size of an operation in the DAG we zero-extend the reduced
bitwidth op back to the original size. If we reduce ANDs then this can cause
an endless loop. This patch changes the ZEXT to ANY_EXTEND if the demanded bits
are equal or smaller than the size of the reduced operation.

llvm-svn: 170505
2012-12-19 07:39:08 +00:00

22 lines
557 B
LLVM

; RUN: llc < %s
define void @main() {
if.end:
br label %block.i.i
block.i.i:
%tmpbb = load i8* undef
%tmp54 = zext i8 %tmpbb to i64
%tmp59 = and i64 %tmp54, 8
%tmp60 = add i64 %tmp59, 3691045929300498764
%tmp62 = sub i64 %tmp60, 3456506383779105993
%tmp63 = xor i64 1050774804270620004, %tmp62
%tmp65 = xor i64 %tmp62, 234539545521392771
%tmp67 = or i64 %tmp65, %tmp63
%tmp71 = xor i64 %tmp67, 6781485823212740913
%tmp72 = trunc i64 %tmp71 to i32
%tmp74 = lshr i32 2, %tmp72
store i32 %tmp74, i32* undef
br label %block.i.i
}