Skip to content

Commit

Permalink
[X86] setcc.ll - add bmi2 + tbm test coverage
Browse files Browse the repository at this point in the history
As discussed on Issue #55138 - BMI2 (fast shrx) shouldn't always fold to BT
  • Loading branch information
RKSimon committed Apr 27, 2022
1 parent edc80e7 commit 8032c5f
Showing 1 changed file with 24 additions and 8 deletions.
32 changes: 24 additions & 8 deletions 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 {
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 8032c5f

Please sign in to comment.