[llvm] r320602 - Regenerate test-shrink.ll test results. NFC

Amaury Sechet via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 13 10:04:57 PST 2017


Author: deadalnix
Date: Wed Dec 13 10:04:57 2017
New Revision: 320602

URL: http://llvm.org/viewvc/llvm-project?rev=320602&view=rev
Log:
Regenerate test-shrink.ll test results. NFC

Modified:
    llvm/trunk/test/CodeGen/X86/test-shrink.ll

Modified: llvm/trunk/test/CodeGen/X86/test-shrink.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/test-shrink.ll?rev=320602&r1=320601&r2=320602&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/test-shrink.ll (original)
+++ llvm/trunk/test/CodeGen/X86/test-shrink.ll Wed Dec 13 10:04:57 2017
@@ -1,14 +1,39 @@
-; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s --check-prefix=CHECK-64
-; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s --check-prefix=CHECK-64
-; RUN: llc < %s -mtriple=i686-- | FileCheck %s --check-prefix=CHECK-32
-
-; CHECK-64-LABEL: g64xh:
-; CHECK-64:   btl $11
-; CHECK-64:   ret
-; CHECK-32-LABEL: g64xh:
-; CHECK-32:   btl $11
-; CHECK-32:   ret
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s --check-prefix=CHECK-LINUX64
+; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s --check-prefix=CHECK-WIN32-64
+; RUN: llc < %s -mtriple=i686-- | FileCheck %s --check-prefix=CHECK-X86
+
 define void @g64xh(i64 inreg %x) nounwind {
+; CHECK-LINUX64-LABEL: g64xh:
+; CHECK-LINUX64:       # %bb.0:
+; CHECK-LINUX64-NEXT:    btl $11, %edi
+; CHECK-LINUX64-NEXT:    jb .LBB0_2
+; CHECK-LINUX64-NEXT:  # %bb.1: # %yes
+; CHECK-LINUX64-NEXT:    pushq %rax
+; CHECK-LINUX64-NEXT:    callq bar
+; CHECK-LINUX64-NEXT:    popq %rax
+; CHECK-LINUX64-NEXT:  .LBB0_2: # %no
+; CHECK-LINUX64-NEXT:    retq
+;
+; CHECK-WIN32-64-LABEL: g64xh:
+; CHECK-WIN32-64:       # %bb.0:
+; CHECK-WIN32-64-NEXT:    subq $40, %rsp
+; CHECK-WIN32-64-NEXT:    btl $11, %ecx
+; CHECK-WIN32-64-NEXT:    jb .LBB0_2
+; CHECK-WIN32-64-NEXT:  # %bb.1: # %yes
+; CHECK-WIN32-64-NEXT:    callq bar
+; CHECK-WIN32-64-NEXT:  .LBB0_2: # %no
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+;
+; CHECK-X86-LABEL: g64xh:
+; CHECK-X86:       # %bb.0:
+; CHECK-X86-NEXT:    btl $11, %eax
+; CHECK-X86-NEXT:    jb .LBB0_2
+; CHECK-X86-NEXT:  # %bb.1: # %yes
+; CHECK-X86-NEXT:    calll bar
+; CHECK-X86-NEXT:  .LBB0_2: # %no
+; CHECK-X86-NEXT:    retl
   %t = and i64 %x, 2048
   %s = icmp eq i64 %t, 0
   br i1 %s, label %yes, label %no
@@ -19,13 +44,38 @@ yes:
 no:
   ret void
 }
-; CHECK-64-LABEL: g64xl:
-; CHECK-64:   testb $8, [[A0L:%dil|%cl]]
-; CHECK-64:   ret
-; CHECK-32-LABEL: g64xl:
-; CHECK-32:   testb $8, %al
-; CHECK-32:   ret
+
 define void @g64xl(i64 inreg %x) nounwind {
+; CHECK-LINUX64-LABEL: g64xl:
+; CHECK-LINUX64:       # %bb.0:
+; CHECK-LINUX64-NEXT:    testb $8, %dil
+; CHECK-LINUX64-NEXT:    jne .LBB1_2
+; CHECK-LINUX64-NEXT:  # %bb.1: # %yes
+; CHECK-LINUX64-NEXT:    pushq %rax
+; CHECK-LINUX64-NEXT:    callq bar
+; CHECK-LINUX64-NEXT:    popq %rax
+; CHECK-LINUX64-NEXT:  .LBB1_2: # %no
+; CHECK-LINUX64-NEXT:    retq
+;
+; CHECK-WIN32-64-LABEL: g64xl:
+; CHECK-WIN32-64:       # %bb.0:
+; CHECK-WIN32-64-NEXT:    subq $40, %rsp
+; CHECK-WIN32-64-NEXT:    testb $8, %cl
+; CHECK-WIN32-64-NEXT:    jne .LBB1_2
+; CHECK-WIN32-64-NEXT:  # %bb.1: # %yes
+; CHECK-WIN32-64-NEXT:    callq bar
+; CHECK-WIN32-64-NEXT:  .LBB1_2: # %no
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+;
+; CHECK-X86-LABEL: g64xl:
+; CHECK-X86:       # %bb.0:
+; CHECK-X86-NEXT:    testb $8, %al
+; CHECK-X86-NEXT:    jne .LBB1_2
+; CHECK-X86-NEXT:  # %bb.1: # %yes
+; CHECK-X86-NEXT:    calll bar
+; CHECK-X86-NEXT:  .LBB1_2: # %no
+; CHECK-X86-NEXT:    retl
   %t = and i64 %x, 8
   %s = icmp eq i64 %t, 0
   br i1 %s, label %yes, label %no
@@ -36,13 +86,38 @@ yes:
 no:
   ret void
 }
-; CHECK-64-LABEL: g32xh:
-; CHECK-64:   btl $11
-; CHECK-64:   ret
-; CHECK-32-LABEL: g32xh:
-; CHECK-32:   btl $11
-; CHECK-32:   ret
+
 define void @g32xh(i32 inreg %x) nounwind {
+; CHECK-LINUX64-LABEL: g32xh:
+; CHECK-LINUX64:       # %bb.0:
+; CHECK-LINUX64-NEXT:    btl $11, %edi
+; CHECK-LINUX64-NEXT:    jb .LBB2_2
+; CHECK-LINUX64-NEXT:  # %bb.1: # %yes
+; CHECK-LINUX64-NEXT:    pushq %rax
+; CHECK-LINUX64-NEXT:    callq bar
+; CHECK-LINUX64-NEXT:    popq %rax
+; CHECK-LINUX64-NEXT:  .LBB2_2: # %no
+; CHECK-LINUX64-NEXT:    retq
+;
+; CHECK-WIN32-64-LABEL: g32xh:
+; CHECK-WIN32-64:       # %bb.0:
+; CHECK-WIN32-64-NEXT:    subq $40, %rsp
+; CHECK-WIN32-64-NEXT:    btl $11, %ecx
+; CHECK-WIN32-64-NEXT:    jb .LBB2_2
+; CHECK-WIN32-64-NEXT:  # %bb.1: # %yes
+; CHECK-WIN32-64-NEXT:    callq bar
+; CHECK-WIN32-64-NEXT:  .LBB2_2: # %no
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+;
+; CHECK-X86-LABEL: g32xh:
+; CHECK-X86:       # %bb.0:
+; CHECK-X86-NEXT:    btl $11, %eax
+; CHECK-X86-NEXT:    jb .LBB2_2
+; CHECK-X86-NEXT:  # %bb.1: # %yes
+; CHECK-X86-NEXT:    calll bar
+; CHECK-X86-NEXT:  .LBB2_2: # %no
+; CHECK-X86-NEXT:    retl
   %t = and i32 %x, 2048
   %s = icmp eq i32 %t, 0
   br i1 %s, label %yes, label %no
@@ -53,13 +128,38 @@ yes:
 no:
   ret void
 }
-; CHECK-64-LABEL: g32xl:
-; CHECK-64:   testb $8, [[A0L]]
-; CHECK-64:   ret
-; CHECK-32-LABEL: g32xl:
-; CHECK-32:   testb $8, %al
-; CHECK-32:   ret
+
 define void @g32xl(i32 inreg %x) nounwind {
+; CHECK-LINUX64-LABEL: g32xl:
+; CHECK-LINUX64:       # %bb.0:
+; CHECK-LINUX64-NEXT:    testb $8, %dil
+; CHECK-LINUX64-NEXT:    jne .LBB3_2
+; CHECK-LINUX64-NEXT:  # %bb.1: # %yes
+; CHECK-LINUX64-NEXT:    pushq %rax
+; CHECK-LINUX64-NEXT:    callq bar
+; CHECK-LINUX64-NEXT:    popq %rax
+; CHECK-LINUX64-NEXT:  .LBB3_2: # %no
+; CHECK-LINUX64-NEXT:    retq
+;
+; CHECK-WIN32-64-LABEL: g32xl:
+; CHECK-WIN32-64:       # %bb.0:
+; CHECK-WIN32-64-NEXT:    subq $40, %rsp
+; CHECK-WIN32-64-NEXT:    testb $8, %cl
+; CHECK-WIN32-64-NEXT:    jne .LBB3_2
+; CHECK-WIN32-64-NEXT:  # %bb.1: # %yes
+; CHECK-WIN32-64-NEXT:    callq bar
+; CHECK-WIN32-64-NEXT:  .LBB3_2: # %no
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+;
+; CHECK-X86-LABEL: g32xl:
+; CHECK-X86:       # %bb.0:
+; CHECK-X86-NEXT:    testb $8, %al
+; CHECK-X86-NEXT:    jne .LBB3_2
+; CHECK-X86-NEXT:  # %bb.1: # %yes
+; CHECK-X86-NEXT:    calll bar
+; CHECK-X86-NEXT:  .LBB3_2: # %no
+; CHECK-X86-NEXT:    retl
   %t = and i32 %x, 8
   %s = icmp eq i32 %t, 0
   br i1 %s, label %yes, label %no
@@ -70,13 +170,38 @@ yes:
 no:
   ret void
 }
-; CHECK-64-LABEL: g16xh:
-; CHECK-64:   btl $11
-; CHECK-64:   ret
-; CHECK-32-LABEL: g16xh:
-; CHECK-32:   btl $11
-; CHECK-32:   ret
+
 define void @g16xh(i16 inreg %x) nounwind {
+; CHECK-LINUX64-LABEL: g16xh:
+; CHECK-LINUX64:       # %bb.0:
+; CHECK-LINUX64-NEXT:    btl $11, %edi
+; CHECK-LINUX64-NEXT:    jb .LBB4_2
+; CHECK-LINUX64-NEXT:  # %bb.1: # %yes
+; CHECK-LINUX64-NEXT:    pushq %rax
+; CHECK-LINUX64-NEXT:    callq bar
+; CHECK-LINUX64-NEXT:    popq %rax
+; CHECK-LINUX64-NEXT:  .LBB4_2: # %no
+; CHECK-LINUX64-NEXT:    retq
+;
+; CHECK-WIN32-64-LABEL: g16xh:
+; CHECK-WIN32-64:       # %bb.0:
+; CHECK-WIN32-64-NEXT:    subq $40, %rsp
+; CHECK-WIN32-64-NEXT:    btl $11, %ecx
+; CHECK-WIN32-64-NEXT:    jb .LBB4_2
+; CHECK-WIN32-64-NEXT:  # %bb.1: # %yes
+; CHECK-WIN32-64-NEXT:    callq bar
+; CHECK-WIN32-64-NEXT:  .LBB4_2: # %no
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+;
+; CHECK-X86-LABEL: g16xh:
+; CHECK-X86:       # %bb.0:
+; CHECK-X86-NEXT:    btl $11, %eax
+; CHECK-X86-NEXT:    jb .LBB4_2
+; CHECK-X86-NEXT:  # %bb.1: # %yes
+; CHECK-X86-NEXT:    calll bar
+; CHECK-X86-NEXT:  .LBB4_2: # %no
+; CHECK-X86-NEXT:    retl
   %t = and i16 %x, 2048
   %s = icmp eq i16 %t, 0
   br i1 %s, label %yes, label %no
@@ -87,13 +212,38 @@ yes:
 no:
   ret void
 }
-; CHECK-64-LABEL: g16xl:
-; CHECK-64:   testb $8, [[A0L]]
-; CHECK-64:   ret
-; CHECK-32-LABEL: g16xl:
-; CHECK-32:   testb $8, %al
-; CHECK-32:   ret
+
 define void @g16xl(i16 inreg %x) nounwind {
+; CHECK-LINUX64-LABEL: g16xl:
+; CHECK-LINUX64:       # %bb.0:
+; CHECK-LINUX64-NEXT:    testb $8, %dil
+; CHECK-LINUX64-NEXT:    jne .LBB5_2
+; CHECK-LINUX64-NEXT:  # %bb.1: # %yes
+; CHECK-LINUX64-NEXT:    pushq %rax
+; CHECK-LINUX64-NEXT:    callq bar
+; CHECK-LINUX64-NEXT:    popq %rax
+; CHECK-LINUX64-NEXT:  .LBB5_2: # %no
+; CHECK-LINUX64-NEXT:    retq
+;
+; CHECK-WIN32-64-LABEL: g16xl:
+; CHECK-WIN32-64:       # %bb.0:
+; CHECK-WIN32-64-NEXT:    subq $40, %rsp
+; CHECK-WIN32-64-NEXT:    testb $8, %cl
+; CHECK-WIN32-64-NEXT:    jne .LBB5_2
+; CHECK-WIN32-64-NEXT:  # %bb.1: # %yes
+; CHECK-WIN32-64-NEXT:    callq bar
+; CHECK-WIN32-64-NEXT:  .LBB5_2: # %no
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+;
+; CHECK-X86-LABEL: g16xl:
+; CHECK-X86:       # %bb.0:
+; CHECK-X86-NEXT:    testb $8, %al
+; CHECK-X86-NEXT:    jne .LBB5_2
+; CHECK-X86-NEXT:  # %bb.1: # %yes
+; CHECK-X86-NEXT:    calll bar
+; CHECK-X86-NEXT:  .LBB5_2: # %no
+; CHECK-X86-NEXT:    retl
   %t = and i16 %x, 8
   %s = icmp eq i16 %t, 0
   br i1 %s, label %yes, label %no
@@ -104,13 +254,42 @@ yes:
 no:
   ret void
 }
-; CHECK-64-LABEL: g64x16:
-; CHECK-64:   testl $32896, %[[A0D:edi|ecx]]
-; CHECK-64:   ret
-; CHECK-32-LABEL: g64x16:
-; CHECK-32:   testl $32896, %eax
-; CHECK-32:   ret
+
 define void @g64x16(i64 inreg %x) nounwind {
+; CHECK-LINUX64-LABEL: g64x16:
+; CHECK-LINUX64:       # %bb.0:
+; CHECK-LINUX64-NEXT:    testl $32896, %edi # imm = 0x8080
+; CHECK-LINUX64-NEXT:    je .LBB6_1
+; CHECK-LINUX64-NEXT:  # %bb.2: # %no
+; CHECK-LINUX64-NEXT:    retq
+; CHECK-LINUX64-NEXT:  .LBB6_1: # %yes
+; CHECK-LINUX64-NEXT:    pushq %rax
+; CHECK-LINUX64-NEXT:    callq bar
+; CHECK-LINUX64-NEXT:    popq %rax
+; CHECK-LINUX64-NEXT:    retq
+;
+; CHECK-WIN32-64-LABEL: g64x16:
+; CHECK-WIN32-64:       # %bb.0:
+; CHECK-WIN32-64-NEXT:    subq $40, %rsp
+; CHECK-WIN32-64-NEXT:    testl $32896, %ecx # imm = 0x8080
+; CHECK-WIN32-64-NEXT:    je .LBB6_1
+; CHECK-WIN32-64-NEXT:  # %bb.2: # %no
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+; CHECK-WIN32-64-NEXT:  .LBB6_1: # %yes
+; CHECK-WIN32-64-NEXT:    callq bar
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+;
+; CHECK-X86-LABEL: g64x16:
+; CHECK-X86:       # %bb.0:
+; CHECK-X86-NEXT:    testl $32896, %eax # imm = 0x8080
+; CHECK-X86-NEXT:    je .LBB6_1
+; CHECK-X86-NEXT:  # %bb.2: # %no
+; CHECK-X86-NEXT:    retl
+; CHECK-X86-NEXT:  .LBB6_1: # %yes
+; CHECK-X86-NEXT:    calll bar
+; CHECK-X86-NEXT:    retl
   %t = and i64 %x, 32896
   %s = icmp eq i64 %t, 0
   br i1 %s, label %yes, label %no
@@ -121,13 +300,40 @@ yes:
 no:
   ret void
 }
-; CHECK-64-LABEL: g64x16minsize:
-; CHECK-64:   testw $-32640, %[[A0W:di|cx]]
-; CHECK-64:   ret
-; CHECK-32-LABEL: g64x16minsize:
-; CHECK-32:   testw $-32640, %ax
-; CHECK-32:   ret
+
 define void @g64x16minsize(i64 inreg %x) nounwind minsize {
+; CHECK-LINUX64-LABEL: g64x16minsize:
+; CHECK-LINUX64:       # %bb.0:
+; CHECK-LINUX64-NEXT:    testw $-32640, %di # imm = 0x8080
+; CHECK-LINUX64-NEXT:    je .LBB7_1
+; CHECK-LINUX64-NEXT:  # %bb.2: # %no
+; CHECK-LINUX64-NEXT:    retq
+; CHECK-LINUX64-NEXT:  .LBB7_1: # %yes
+; CHECK-LINUX64-NEXT:    pushq %rax
+; CHECK-LINUX64-NEXT:    callq bar
+; CHECK-LINUX64-NEXT:    popq %rax
+; CHECK-LINUX64-NEXT:    retq
+;
+; CHECK-WIN32-64-LABEL: g64x16minsize:
+; CHECK-WIN32-64:       # %bb.0:
+; CHECK-WIN32-64-NEXT:    subq $40, %rsp
+; CHECK-WIN32-64-NEXT:    testw $-32640, %cx # imm = 0x8080
+; CHECK-WIN32-64-NEXT:    jne .LBB7_2
+; CHECK-WIN32-64-NEXT:  # %bb.1: # %yes
+; CHECK-WIN32-64-NEXT:    callq bar
+; CHECK-WIN32-64-NEXT:  .LBB7_2: # %no
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+;
+; CHECK-X86-LABEL: g64x16minsize:
+; CHECK-X86:       # %bb.0:
+; CHECK-X86-NEXT:    testw $-32640, %ax # imm = 0x8080
+; CHECK-X86-NEXT:    je .LBB7_1
+; CHECK-X86-NEXT:  # %bb.2: # %no
+; CHECK-X86-NEXT:    retl
+; CHECK-X86-NEXT:  .LBB7_1: # %yes
+; CHECK-X86-NEXT:    calll bar
+; CHECK-X86-NEXT:    retl
   %t = and i64 %x, 32896
   %s = icmp eq i64 %t, 0
   br i1 %s, label %yes, label %no
@@ -138,13 +344,42 @@ yes:
 no:
   ret void
 }
-; CHECK-64-LABEL: g32x16:
-; CHECK-64:   testl $32896, %[[A0D]]
-; CHECK-64:   ret
-; CHECK-32-LABEL: g32x16:
-; CHECK-32:   testl $32896, %eax
-; CHECK-32:   ret
+
 define void @g32x16(i32 inreg %x) nounwind {
+; CHECK-LINUX64-LABEL: g32x16:
+; CHECK-LINUX64:       # %bb.0:
+; CHECK-LINUX64-NEXT:    testl $32896, %edi # imm = 0x8080
+; CHECK-LINUX64-NEXT:    je .LBB8_1
+; CHECK-LINUX64-NEXT:  # %bb.2: # %no
+; CHECK-LINUX64-NEXT:    retq
+; CHECK-LINUX64-NEXT:  .LBB8_1: # %yes
+; CHECK-LINUX64-NEXT:    pushq %rax
+; CHECK-LINUX64-NEXT:    callq bar
+; CHECK-LINUX64-NEXT:    popq %rax
+; CHECK-LINUX64-NEXT:    retq
+;
+; CHECK-WIN32-64-LABEL: g32x16:
+; CHECK-WIN32-64:       # %bb.0:
+; CHECK-WIN32-64-NEXT:    subq $40, %rsp
+; CHECK-WIN32-64-NEXT:    testl $32896, %ecx # imm = 0x8080
+; CHECK-WIN32-64-NEXT:    je .LBB8_1
+; CHECK-WIN32-64-NEXT:  # %bb.2: # %no
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+; CHECK-WIN32-64-NEXT:  .LBB8_1: # %yes
+; CHECK-WIN32-64-NEXT:    callq bar
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+;
+; CHECK-X86-LABEL: g32x16:
+; CHECK-X86:       # %bb.0:
+; CHECK-X86-NEXT:    testl $32896, %eax # imm = 0x8080
+; CHECK-X86-NEXT:    je .LBB8_1
+; CHECK-X86-NEXT:  # %bb.2: # %no
+; CHECK-X86-NEXT:    retl
+; CHECK-X86-NEXT:  .LBB8_1: # %yes
+; CHECK-X86-NEXT:    calll bar
+; CHECK-X86-NEXT:    retl
   %t = and i32 %x, 32896
   %s = icmp eq i32 %t, 0
   br i1 %s, label %yes, label %no
@@ -155,13 +390,40 @@ yes:
 no:
   ret void
 }
-; CHECK-64-LABEL: g32x16minsize:
-; CHECK-64:   testw $-32640, %[[A0W]]
-; CHECK-64:   ret
-; CHECK-32-LABEL: g32x16minsize:
-; CHECK-32:   testw $-32640, %ax
-; CHECK-32:   ret
+
 define void @g32x16minsize(i32 inreg %x) nounwind minsize {
+; CHECK-LINUX64-LABEL: g32x16minsize:
+; CHECK-LINUX64:       # %bb.0:
+; CHECK-LINUX64-NEXT:    testw $-32640, %di # imm = 0x8080
+; CHECK-LINUX64-NEXT:    je .LBB9_1
+; CHECK-LINUX64-NEXT:  # %bb.2: # %no
+; CHECK-LINUX64-NEXT:    retq
+; CHECK-LINUX64-NEXT:  .LBB9_1: # %yes
+; CHECK-LINUX64-NEXT:    pushq %rax
+; CHECK-LINUX64-NEXT:    callq bar
+; CHECK-LINUX64-NEXT:    popq %rax
+; CHECK-LINUX64-NEXT:    retq
+;
+; CHECK-WIN32-64-LABEL: g32x16minsize:
+; CHECK-WIN32-64:       # %bb.0:
+; CHECK-WIN32-64-NEXT:    subq $40, %rsp
+; CHECK-WIN32-64-NEXT:    testw $-32640, %cx # imm = 0x8080
+; CHECK-WIN32-64-NEXT:    jne .LBB9_2
+; CHECK-WIN32-64-NEXT:  # %bb.1: # %yes
+; CHECK-WIN32-64-NEXT:    callq bar
+; CHECK-WIN32-64-NEXT:  .LBB9_2: # %no
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+;
+; CHECK-X86-LABEL: g32x16minsize:
+; CHECK-X86:       # %bb.0:
+; CHECK-X86-NEXT:    testw $-32640, %ax # imm = 0x8080
+; CHECK-X86-NEXT:    je .LBB9_1
+; CHECK-X86-NEXT:  # %bb.2: # %no
+; CHECK-X86-NEXT:    retl
+; CHECK-X86-NEXT:  .LBB9_1: # %yes
+; CHECK-X86-NEXT:    calll bar
+; CHECK-X86-NEXT:    retl
   %t = and i32 %x, 32896
   %s = icmp eq i32 %t, 0
   br i1 %s, label %yes, label %no
@@ -172,13 +434,42 @@ yes:
 no:
   ret void
 }
-; CHECK-64-LABEL: g64x32:
-; CHECK-64:   testl $268468352, %[[A0D]]
-; CHECK-64:   ret
-; CHECK-32-LABEL: g64x32:
-; CHECK-32:   testl $268468352, %eax
-; CHECK-32:   ret
+
 define void @g64x32(i64 inreg %x) nounwind {
+; CHECK-LINUX64-LABEL: g64x32:
+; CHECK-LINUX64:       # %bb.0:
+; CHECK-LINUX64-NEXT:    testl $268468352, %edi # imm = 0x10008080
+; CHECK-LINUX64-NEXT:    je .LBB10_1
+; CHECK-LINUX64-NEXT:  # %bb.2: # %no
+; CHECK-LINUX64-NEXT:    retq
+; CHECK-LINUX64-NEXT:  .LBB10_1: # %yes
+; CHECK-LINUX64-NEXT:    pushq %rax
+; CHECK-LINUX64-NEXT:    callq bar
+; CHECK-LINUX64-NEXT:    popq %rax
+; CHECK-LINUX64-NEXT:    retq
+;
+; CHECK-WIN32-64-LABEL: g64x32:
+; CHECK-WIN32-64:       # %bb.0:
+; CHECK-WIN32-64-NEXT:    subq $40, %rsp
+; CHECK-WIN32-64-NEXT:    testl $268468352, %ecx # imm = 0x10008080
+; CHECK-WIN32-64-NEXT:    je .LBB10_1
+; CHECK-WIN32-64-NEXT:  # %bb.2: # %no
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+; CHECK-WIN32-64-NEXT:  .LBB10_1: # %yes
+; CHECK-WIN32-64-NEXT:    callq bar
+; CHECK-WIN32-64-NEXT:    addq $40, %rsp
+; CHECK-WIN32-64-NEXT:    retq
+;
+; CHECK-X86-LABEL: g64x32:
+; CHECK-X86:       # %bb.0:
+; CHECK-X86-NEXT:    testl $268468352, %eax # imm = 0x10008080
+; CHECK-X86-NEXT:    je .LBB10_1
+; CHECK-X86-NEXT:  # %bb.2: # %no
+; CHECK-X86-NEXT:    retl
+; CHECK-X86-NEXT:  .LBB10_1: # %yes
+; CHECK-X86-NEXT:    calll bar
+; CHECK-X86-NEXT:    retl
   %t = and i64 %x, 268468352
   %s = icmp eq i64 %t, 0
   br i1 %s, label %yes, label %no




More information about the llvm-commits mailing list