X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FX86%2Flegalize-shift-64.ll;h=fb8f7b6a6027b38ec311740525bb4d5a62cf7337;hb=0e3246a86f553aa6fae35d3bfb91de81dd66a18b;hp=77364688afe4391360e92c8163a8beec46123249;hpb=8adae96fd905daa8835b6fde5e74e25d818c7471;p=oota-llvm.git diff --git a/test/CodeGen/X86/legalize-shift-64.ll b/test/CodeGen/X86/legalize-shift-64.ll index 77364688afe..fb8f7b6a602 100644 --- a/test/CodeGen/X86/legalize-shift-64.ll +++ b/test/CodeGen/X86/legalize-shift-64.ll @@ -64,3 +64,31 @@ define <2 x i64> @test5(<2 x i64> %A, <2 x i64> %B) { ; CHECK: shl ; CHECK: shldl } + +; PR16108 +define i32 @test6() { + %x = alloca i32, align 4 + %t = alloca i64, align 8 + store i32 1, i32* %x, align 4 + store i64 1, i64* %t, align 8 ;; DEAD + %load = load i32, i32* %x, align 4 + %shl = shl i32 %load, 8 + %add = add i32 %shl, -224 + %sh_prom = zext i32 %add to i64 + %shl1 = shl i64 1, %sh_prom + %cmp = icmp ne i64 %shl1, 4294967296 + br i1 %cmp, label %if.then, label %if.end + +if.then: ; preds = %entry + ret i32 1 + +if.end: ; preds = %entry + ret i32 0 + +; CHECK-LABEL: test6: +; CHECK-NOT: andb $31 +; CHECK: sete +; CHECK: movzbl +; CHECK: xorl $1 +; CHECK: orl +}