[llvm] [X86] Lower scalar integer div/rem to FP division (PR #216589)
Ankit Kumar Tiwari via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 20 18:14:24 PDT 2026
================
@@ -430,32 +430,48 @@ define <16 x i8> @test_divconstant_16i8(<16 x i8> %a) nounwind {
define <4 x i32> @test_divv_4i32(<4 x i32> %a, <4 x i32> %b) nounwind {
; SSE2-LABEL: test_divv_4i32:
; SSE2: # %bb.0:
-; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm0[3,3,3,3]
-; SSE2-NEXT: movd %xmm2, %eax
; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm1[3,3,3,3]
-; SSE2-NEXT: movd %xmm2, %ecx
-; SSE2-NEXT: xorl %edx, %edx
-; SSE2-NEXT: divl %ecx
-; SSE2-NEXT: movd %eax, %xmm2
-; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm0[2,3,2,3]
+; SSE2-NEXT: movd %xmm2, %eax
+; SSE2-NEXT: xorps %xmm2, %xmm2
+; SSE2-NEXT: cvtsi2sd %rax, %xmm2
+; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm0[3,3,3,3]
; SSE2-NEXT: movd %xmm3, %eax
+; SSE2-NEXT: xorps %xmm3, %xmm3
+; SSE2-NEXT: cvtsi2sd %rax, %xmm3
+; SSE2-NEXT: divsd %xmm2, %xmm3
+; SSE2-NEXT: cvttsd2si %xmm3, %rax
+; SSE2-NEXT: movd %eax, %xmm2
; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm1[2,3,2,3]
-; SSE2-NEXT: movd %xmm3, %ecx
-; SSE2-NEXT: xorl %edx, %edx
-; SSE2-NEXT: divl %ecx
+; SSE2-NEXT: movd %xmm3, %eax
+; SSE2-NEXT: xorps %xmm3, %xmm3
+; SSE2-NEXT: cvtsi2sd %rax, %xmm3
+; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm0[2,3,2,3]
+; SSE2-NEXT: movd %xmm4, %eax
+; SSE2-NEXT: xorps %xmm4, %xmm4
+; SSE2-NEXT: cvtsi2sd %rax, %xmm4
+; SSE2-NEXT: divsd %xmm3, %xmm4
----------------
ankit-cybertron wrote:
Some other tests are failing too. Shall we update those
https://github.com/llvm/llvm-project/pull/216589
More information about the llvm-commits
mailing list