[llvm] [X86] Don't always separate conditions in `(br (and/or cond0, cond1))` into separate branches (PR #81689)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 1 11:02:04 PST 2024
================
@@ -18,11 +18,13 @@ define void @test_dec_select(ptr nocapture %0, ptr readnone %1) {
; CHECK-LABEL: test_dec_select:
; CHECK: # %bb.0:
; CHECK-NEXT: lock decq (%rdi)
-; CHECK-NEXT: jne .LBB0_2
-; CHECK-NEXT: # %bb.1:
+; CHECK-NEXT: sete %al
; CHECK-NEXT: testq %rsi, %rsi
-; CHECK-NEXT: jne func2 # TAILCALL
-; CHECK-NEXT: .LBB0_2:
+; CHECK-NEXT: setne %cl
+; CHECK-NEXT: andb %al, %cl
+; CHECK-NEXT: cmpb $1, %cl
----------------
RKSimon wrote:
Any idea why the and+cmp hasn't folded to test? Not related to this patch but maybe worth a followup investigation?
https://github.com/llvm/llvm-project/pull/81689
More information about the llvm-commits
mailing list