[llvm] [AArch64] missed fold vector fptoui(fdiv(uitofp(x), uitofp(y))) or fptosi(fdiv(sitofp(x), sitofp(y))) into udiv(x, y) or sdiv(x, y) for sve (PR #215146)

via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 10 22:51:19 PDT 2026


================
@@ -4,11 +4,10 @@
 define <vscale x 2 x i32> @fptoui_fdiv_uitofp_nxv2i32(<vscale x 2 x i32> %a, <vscale x 2 x i32> %b) {
 ; CHECK-LABEL: fptoui_fdiv_uitofp_nxv2i32:
 ; CHECK:       // %bb.0:
+; CHECK-NEXT:    and z1.d, z1.d, #0xffffffff
+; CHECK-NEXT:    and z0.d, z0.d, #0xffffffff
 ; CHECK-NEXT:    ptrue p0.d
-; CHECK-NEXT:    ucvtf z0.d, p0/m, z0.s
-; CHECK-NEXT:    ucvtf z1.d, p0/m, z1.s
-; CHECK-NEXT:    fdiv z0.d, p0/m, z0.d, z1.d
-; CHECK-NEXT:    fcvtzs z0.d, p0/m, z0.d
+; CHECK-NEXT:    udiv z0.d, p0/m, z0.d, z1.d
----------------
Andarwinux wrote:

It should be a i32 udiv.

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


More information about the llvm-commits mailing list