[llvm] 8032c5f - [X86] setcc.ll - add bmi2 + tbm test coverage

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 27 13:16:42 PDT 2022


Author: Simon Pilgrim
Date: 2022-04-27T21:09:57+01:00
New Revision: 8032c5f68cf122a14da0df5b14e01a84d698b06d

URL: https://github.com/llvm/llvm-project/commit/8032c5f68cf122a14da0df5b14e01a84d698b06d
DIFF: https://github.com/llvm/llvm-project/commit/8032c5f68cf122a14da0df5b14e01a84d698b06d.diff

LOG: [X86] setcc.ll - add bmi2 + tbm test coverage

As discussed on Issue #55138 - BMI2 (fast shrx) shouldn't always fold to BT

Added: 
    

Modified: 
    llvm/test/CodeGen/X86/setcc.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/X86/setcc.ll b/llvm/test/CodeGen/X86/setcc.ll
index fb132ed4a09a..d600aa65578e 100644
--- a/llvm/test/CodeGen/X86/setcc.ll
+++ b/llvm/test/CodeGen/X86/setcc.ll
@@ -1,6 +1,8 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
 ; RUN: llc < %s -mtriple=i686-apple-darwin | FileCheck %s --check-prefixes=X86
-; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s --check-prefixes=X64
+; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s --check-prefixes=X64,X64-BASE
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+tbm | FileCheck %s --check-prefixes=X64,X64-TBM
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+bmi2 | FileCheck %s --check-prefixes=X64,X64-BMI2
 ; rdar://7329206
 
 define zeroext i16 @t1(i16 zeroext %x) nounwind readnone ssp {
@@ -279,13 +281,27 @@ define i16 @shift_and(i16 %a) {
 ; X86-NEXT:    ## kill: def $ax killed $ax killed $eax
 ; X86-NEXT:    retl
 ;
-; X64-LABEL: shift_and:
-; X64:       ## %bb.0:
-; X64-NEXT:    movl %edi, %eax
-; X64-NEXT:    shrl $10, %eax
-; X64-NEXT:    andl $1, %eax
-; X64-NEXT:    ## kill: def $ax killed $ax killed $eax
-; X64-NEXT:    retq
+; X64-BASE-LABEL: shift_and:
+; X64-BASE:       ## %bb.0:
+; X64-BASE-NEXT:    movl %edi, %eax
+; X64-BASE-NEXT:    shrl $10, %eax
+; X64-BASE-NEXT:    andl $1, %eax
+; X64-BASE-NEXT:    ## kill: def $ax killed $ax killed $eax
+; X64-BASE-NEXT:    retq
+;
+; X64-TBM-LABEL: shift_and:
+; X64-TBM:       ## %bb.0:
+; X64-TBM-NEXT:    bextrl $266, %edi, %eax ## imm = 0x10A
+; X64-TBM-NEXT:    ## kill: def $ax killed $ax killed $eax
+; X64-TBM-NEXT:    retq
+;
+; X64-BMI2-LABEL: shift_and:
+; X64-BMI2:       ## %bb.0:
+; X64-BMI2-NEXT:    movl %edi, %eax
+; X64-BMI2-NEXT:    shrl $10, %eax
+; X64-BMI2-NEXT:    andl $1, %eax
+; X64-BMI2-NEXT:    ## kill: def $ax killed $ax killed $eax
+; X64-BMI2-NEXT:    retq
   %and = and i16 %a, 1024
   %cmp = icmp ne i16 %and, 0
   %conv = zext i1 %cmp to i16


        


More information about the llvm-commits mailing list