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=71ef2d3152f8d2f9fd486b6288b91ffb32a00a02;hpb=914f8c4825140a97219e94b815beb2bc77395d10;p=oota-llvm.git diff --git a/test/CodeGen/X86/legalize-shift-64.ll b/test/CodeGen/X86/legalize-shift-64.ll index 71ef2d3152f..fb8f7b6a602 100644 --- a/test/CodeGen/X86/legalize-shift-64.ll +++ b/test/CodeGen/X86/legalize-shift-64.ll @@ -1,12 +1,11 @@ -; RUN: llc -mcpu=generic -march=x86 < %s | FileCheck %s - +; RUN: llc -mcpu=generic -mtriple=i686-unknown-unknown < %s | FileCheck %s define i64 @test1(i32 %xx, i32 %test) nounwind { %conv = zext i32 %xx to i64 %and = and i32 %test, 7 %sh_prom = zext i32 %and to i64 %shl = shl i64 %conv, %sh_prom ret i64 %shl -; CHECK: test1: +; CHECK-LABEL: test1: ; CHECK: shll %cl, %eax ; CHECK: shrl %edx ; CHECK: xorb $31 @@ -18,7 +17,7 @@ define i64 @test2(i64 %xx, i32 %test) nounwind { %sh_prom = zext i32 %and to i64 %shl = shl i64 %xx, %sh_prom ret i64 %shl -; CHECK: test2: +; CHECK-LABEL: test2: ; CHECK: shll %cl, %esi ; CHECK: shrl %edx ; CHECK: xorb $31 @@ -32,7 +31,7 @@ define i64 @test3(i64 %xx, i32 %test) nounwind { %sh_prom = zext i32 %and to i64 %shr = lshr i64 %xx, %sh_prom ret i64 %shr -; CHECK: test3: +; CHECK-LABEL: test3: ; CHECK: shrl %cl, %esi ; CHECK: leal (%edx,%edx), %eax ; CHECK: xorb $31, %cl @@ -46,7 +45,7 @@ define i64 @test4(i64 %xx, i32 %test) nounwind { %sh_prom = zext i32 %and to i64 %shr = ashr i64 %xx, %sh_prom ret i64 %shr -; CHECK: test4: +; CHECK-LABEL: test4: ; CHECK: shrl %cl, %esi ; CHECK: leal (%edx,%edx), %eax ; CHECK: xorb $31, %cl @@ -65,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 +}