[llvm] [X86] SimplifyDemandedBitsForTargetNode - add handling for X86ISD::FAND/FOR (PR #136618)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 22 02:18:37 PDT 2025
================
@@ -252,28 +252,22 @@ define double @PR136368(double %x) {
; SSE-LABEL: PR136368:
; SSE: # %bb.0:
; SSE-NEXT: movapd {{.*#+}} xmm1 = [NaN,NaN]
-; SSE-NEXT: movapd %xmm0, %xmm2
-; SSE-NEXT: andpd %xmm1, %xmm2
-; SSE-NEXT: movsd {{.*#+}} xmm3 = [1.5707963267948966E+0,0.0E+0]
-; SSE-NEXT: movapd %xmm3, %xmm4
-; SSE-NEXT: cmpltsd %xmm2, %xmm4
-; SSE-NEXT: andpd %xmm3, %xmm4
-; SSE-NEXT: andpd %xmm1, %xmm4
-; SSE-NEXT: andnpd %xmm0, %xmm1
-; SSE-NEXT: orpd %xmm4, %xmm1
-; SSE-NEXT: movapd %xmm1, %xmm0
+; SSE-NEXT: andpd %xmm0, %xmm1
+; SSE-NEXT: movsd {{.*#+}} xmm2 = [1.5707963267948966E+0,0.0E+0]
+; SSE-NEXT: movapd %xmm2, %xmm3
+; SSE-NEXT: cmpltsd %xmm1, %xmm3
+; SSE-NEXT: andpd %xmm2, %xmm3
+; SSE-NEXT: andpd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
----------------
RKSimon wrote:
yes - its not a bitselect pattern so canonicalizeBitSelect doesn't match, we just happen to have 0x80...0 and 0x7f...f in codegen.
https://github.com/llvm/llvm-project/pull/136618
More information about the llvm-commits
mailing list