[llvm] [X86] Move Non-VLX handling for VPMADD52 instructions entirely into tablegen (PR #200800)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 1 07:31:36 PDT 2026
================
@@ -169,7 +169,8 @@ define <4 x i64> @test_mul_52bit_ymm(<4 x i64> %a, <4 x i64> %b) {
; NOVLX-NEXT: vpand %ymm2, %ymm0, %ymm0
; NOVLX-NEXT: vpbroadcastq {{.*#+}} ymm2 = [524287,524287,524287,524287]
; NOVLX-NEXT: vpand %ymm2, %ymm1, %ymm1
-; NOVLX-NEXT: vpmullq %zmm1, %zmm0, %zmm0
+; NOVLX-NEXT: vpxor %xmm2, %xmm2, %xmm2
+; NOVLX-NEXT: vpmadd52luq %zmm2, %zmm1, %zmm0
----------------
RKSimon wrote:
NOVLX is a cannonlake with vlx disabled - so it has a slow vpmullq instruction and we prefer vpmadd52 to vpmullq if we have suitable multiply operands - xmm2/zmm2 is the (zero) accumulator.
https://github.com/llvm/llvm-project/pull/200800
More information about the llvm-commits
mailing list