X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FX86%2Fsetcc.ll;h=b4847c54ffafed9e77de9335baf53e9508603a75;hb=f24a5b58cd7ecc4fada221308073b9f13672d6c0;hp=349912c6ed55182267b81c9fbba29d370b4f92d7;hpb=c6df9883da99915d1cfa491b381ffa703c61ed90;p=oota-llvm.git diff --git a/test/CodeGen/X86/setcc.ll b/test/CodeGen/X86/setcc.ll index 349912c6ed5..b4847c54ffa 100644 --- a/test/CodeGen/X86/setcc.ll +++ b/test/CodeGen/X86/setcc.ll @@ -6,9 +6,9 @@ define zeroext i16 @t1(i16 zeroext %x) nounwind readnone ssp { entry: -; CHECK: t1: +; CHECK-LABEL: t1: ; CHECK: seta %al -; CHECK: movzx %al, %eax +; CHECK: movzbl %al, %eax ; CHECK: shll $5, %eax %0 = icmp ugt i16 %x, 26 ; [#uses=1] %iftmp.1.0 = select i1 %0, i16 32, i16 0 ; [#uses=1] @@ -17,7 +17,7 @@ entry: define zeroext i16 @t2(i16 zeroext %x) nounwind readnone ssp { entry: -; CHECK: t2: +; CHECK-LABEL: t2: ; CHECK: sbbl %eax, %eax ; CHECK: andl $32, %eax %0 = icmp ult i16 %x, 26 ; [#uses=1] @@ -27,10 +27,30 @@ entry: define i64 @t3(i64 %x) nounwind readnone ssp { entry: -; CHECK: t3: +; CHECK-LABEL: t3: ; CHECK: sbbq %rax, %rax -; CHECK: andq $64, %rax +; CHECK: andl $64, %eax %0 = icmp ult i64 %x, 18 ; [#uses=1] %iftmp.2.0 = select i1 %0, i64 64, i64 0 ; [#uses=1] ret i64 %iftmp.2.0 } + +@v4 = common global i32 0, align 4 + +define i32 @t4(i32 %a) { +entry: +; CHECK-LABEL: t4: +; CHECK: movq _v4@GOTPCREL(%rip), %rax +; CHECK: cmpl $1, (%rax) +; CHECK: sbbl %eax, %eax +; CHECK: andl $32768, %eax +; CHECK: leal 65536(%rax,%rax), %eax + %0 = load i32, i32* @v4, align 4 + %not.tobool = icmp eq i32 %0, 0 + %conv.i = sext i1 %not.tobool to i16 + %call.lobit = lshr i16 %conv.i, 15 + %add.i.1 = add nuw nsw i16 %call.lobit, 1 + %conv4.2 = zext i16 %add.i.1 to i32 + %add = shl nuw nsw i32 %conv4.2, 16 + ret i32 %add +}