[llvm] X86: Add pattern for optimized BLSIC IR form (PR #209814)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 16 01:01:54 PDT 2026
================
@@ -909,6 +909,53 @@ define i64 @test_x86_tbm_blsic_u64_sle(i64 %a, i64 %b, i64 %c) nounwind {
ret i64 %t4
}
+
+define i32 @test_blsic_original(i32 %x) {
+; CHECK-LABEL: test_blsic_original:
+; CHECK: # %bb.0:
+; CHECK-NEXT: blsicl %edi, %eax
+; CHECK-NEXT: retq
+ %_2 = xor i32 %x, -1
+ %_0.i = add i32 %x, -1
+ %_0 = or i32 %_0.i, %_2
+ ret i32 %_0
+}
+
+define i32 @test_blsic_optimized(i32 %x) {
+; CHECK-LABEL: test_blsic_optimized:
+; CHECK: # %bb.0:
+; CHECK-NEXT: blsicl %edi, %eax
+; CHECK-NEXT: retq
+ %1 = sub i32 0, %x
+ %2 = and i32 %x, %1
+ %3 = xor i32 %2, -1
+ ret i32 %3
+}
+
+define i64 @test_blsic_64_original(i64 %x) {
----------------
RKSimon wrote:
Isn't this the same as the existing test_x86_tbm_blsic_u64 test?
https://github.com/llvm/llvm-project/pull/209814
More information about the llvm-commits
mailing list