[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