[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