[llvm] [DAG] Add select_cc -> abd folds (PR #102137)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 19 07:36:02 PDT 2024
================
@@ -648,27 +648,23 @@ define i128 @abd_minmax_i128(i128 %a, i128 %b) nounwind {
define i8 @abd_cmp_i8(i8 %a, i8 %b) nounwind {
; X86-LABEL: abd_cmp_i8:
; X86: # %bb.0:
-; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
-; X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
-; X86-NEXT: movl %eax, %edx
-; X86-NEXT: subb %cl, %dl
-; X86-NEXT: negb %dl
-; X86-NEXT: subb %cl, %al
-; X86-NEXT: movzbl %al, %ecx
-; X86-NEXT: movzbl %dl, %eax
-; X86-NEXT: cmovgl %ecx, %eax
+; X86-NEXT: movsbl {{[0-9]+}}(%esp), %eax
+; X86-NEXT: movsbl {{[0-9]+}}(%esp), %ecx
+; X86-NEXT: subl %eax, %ecx
+; X86-NEXT: movl %ecx, %eax
+; X86-NEXT: negl %eax
----------------
RKSimon wrote:
We'll end up with a reg-reg mov in both cases as we need to copy the sub dst op. But using 2 subs does allow them to be run in parallel.
https://github.com/llvm/llvm-project/pull/102137
More information about the llvm-commits
mailing list