diff --git a/llvm/lib/Target/AArch64/AArch64InstrFormats.td b/llvm/lib/Target/AArch64/AArch64InstrFormats.td --- a/llvm/lib/Target/AArch64/AArch64InstrFormats.td +++ b/llvm/lib/Target/AArch64/AArch64InstrFormats.td @@ -7658,8 +7658,8 @@ //---------------------------------------------------------------------------- let mayLoad = 0, mayStore = 0, hasSideEffects = 0 in class BaseSIMDScalarCPY - : I<(outs regtype:$dst), (ins vectype:$src, idxtype:$idx), "mov", + string asm, string kind, Operand idxtype> + : I<(outs regtype:$dst), (ins vectype:$src, idxtype:$idx), asm, "{\t$dst, $src" # kind # "$idx" # "|\t$dst, $src$idx}", "", []>, Sched<[WriteV]> { @@ -7679,22 +7679,22 @@ multiclass SIMDScalarCPY { - def i8 : BaseSIMDScalarCPY { + def i8 : BaseSIMDScalarCPY { bits<4> idx; let Inst{20-17} = idx; let Inst{16} = 1; } - def i16 : BaseSIMDScalarCPY { + def i16 : BaseSIMDScalarCPY { bits<3> idx; let Inst{20-18} = idx; let Inst{17-16} = 0b10; } - def i32 : BaseSIMDScalarCPY { + def i32 : BaseSIMDScalarCPY { bits<2> idx; let Inst{20-19} = idx; let Inst{18-16} = 0b100; } - def i64 : BaseSIMDScalarCPY { + def i64 : BaseSIMDScalarCPY { bits<1> idx; let Inst{20} = idx; let Inst{19-16} = 0b1000; diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.td b/llvm/lib/Target/AArch64/AArch64InstrInfo.td --- a/llvm/lib/Target/AArch64/AArch64InstrInfo.td +++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.td @@ -5253,7 +5253,7 @@ // AdvSIMD scalar CPY instruction //---------------------------------------------------------------------------- -defm CPY : SIMDScalarCPY<"cpy">; +defm CPY : SIMDScalarCPY<"mov">; //---------------------------------------------------------------------------- // AdvSIMD scalar pairwise instructions