From e0f60015f692daca64e0450fc9d71e8e3fe627cf Mon Sep 17 00:00:00 2001 From: Eric Fang Date: Fri, 24 Jul 2026 09:44:31 +0000 Subject: [PATCH] 8388543: AArch64: VectorAPI: replace sve_dup+mov with fmovd in sve_vmask_fromlong Reviewed-by: aph, haosun --- src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp index 7d490a99eaa..9e67b27ad38 100644 --- a/src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp @@ -1506,9 +1506,9 @@ void C2_MacroAssembler::sve_vmask_fromlong(FloatRegister dst, Register src, // Expected: dst = 0x00 01 01 00 00 01 00 01 01 00 00 00 01 01 00 01 // Put long value from general purpose register into the first lane of vector. + // The higher lanes are set to zero. // vtmp = 0x0000000000000000 | 0x000000000000658D - sve_dup(vtmp, B, 0); - mov(vtmp, D, 0, src); + fmovd(vtmp, src); // Transform the value in the first lane which is mask in bit now to the mask in // byte, which can be done by SVE2's BDEP instruction.