[llvm] [DAG] Fold SETCC against isKnownNeverZero (PR #184010)

Phoebe Wang via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 2 03:10:09 PST 2026


================
@@ -621,18 +621,18 @@ define i1 @orflag64rm(ptr %ptr, i64 %b) {
 define i1 @orflag8ri(i8 %a) {
 ; CHECK-LABEL: orflag8ri:
 ; CHECK:       # %bb.0:
-; CHECK-NEXT:    orb $-124, %dil, %cl # encoding: [0x62,0xf4,0x74,0x18,0x80,0xcf,0x84]
-; CHECK-NEXT:    sete %al # encoding: [0x0f,0x94,0xc0]
-; CHECK-NEXT:    movb %cl, d64(%rip) # encoding: [0x88,0x0d,A,A,A,A]
+; CHECK-NEXT:    orb $-124, %dil, %al # encoding: [0x62,0xf4,0x7c,0x18,0x80,0xcf,0x84]
+; CHECK-NEXT:    movb %al, d64(%rip) # encoding: [0x88,0x05,A,A,A,A]
 ; CHECK-NEXT:    # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte
+; CHECK-NEXT:    xorl %eax, %eax # encoding: [0x31,0xc0]
 ; CHECK-NEXT:    retq # encoding: [0xc3]
 ;
 ; NF-LABEL: orflag8ri:
 ; NF:       # %bb.0:
-; NF-NEXT:    orb $-124, %dil, %cl # encoding: [0x62,0xf4,0x74,0x18,0x80,0xcf,0x84]
-; NF-NEXT:    sete %al # encoding: [0x0f,0x94,0xc0]
-; NF-NEXT:    movb %cl, d64(%rip) # encoding: [0x88,0x0d,A,A,A,A]
+; NF-NEXT:    {nf} orb $-124, %dil, %al # EVEX TO EVEX Compression encoding: [0x62,0xf4,0x7c,0x1c,0x80,0xcf,0x84]
+; NF-NEXT:    movb %al, d64(%rip) # encoding: [0x88,0x05,A,A,A,A]
 ; NF-NEXT:    # fixup A - offset: 2, value: d64, kind: reloc_riprel_4byte
+; NF-NEXT:    xorl %eax, %eax # encoding: [0x31,0xc0]
----------------
phoebewang wrote:

There's nothing APX specific here. The new code seems a little better, one byte reduced, less data dependence.

https://github.com/llvm/llvm-project/pull/184010


More information about the llvm-commits mailing list