Don't reuse destination registers when lowering splat on aarch64 (#5370)

This commit is contained in:
Trevor Elliott
2022-12-05 08:18:49 -08:00
committed by GitHub
parent a28d4d3c89
commit 6aea8e0d7e
2 changed files with 5 additions and 4 deletions

View File

@@ -421,8 +421,9 @@ impl Inst {
size
}]
} else if let Some(imm) = widen_32_bit_pattern(pattern, lane_size) {
let tmp = alloc_tmp(types::I64X2);
let mut insts = smallvec![Inst::VecDupImm {
rd,
rd: tmp,
imm,
invert: false,
size: VectorSize::Size64x2,
@@ -433,7 +434,7 @@ impl Inst {
if !size.is_128bits() {
insts.push(Inst::FpuExtend {
rd,
rn: rd.to_reg(),
rn: tmp.to_reg(),
size: ScalarSize::Size64,
});
}

View File

@@ -101,8 +101,8 @@ block0:
}
; block0:
; movi v0.2d, #18374687579166474495
; fmov d0, d0
; movi v1.2d, #18374687579166474495
; fmov d0, d1
; ret
function %f10() -> i32x4 {