Index: llvm/lib/Target/AArch64/AArch64InstrFormats.td =================================================================== --- llvm/lib/Target/AArch64/AArch64InstrFormats.td +++ llvm/lib/Target/AArch64/AArch64InstrFormats.td @@ -7661,8 +7661,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]> { @@ -7682,22 +7682,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; Index: llvm/lib/Target/AArch64/AArch64InstrInfo.td =================================================================== --- llvm/lib/Target/AArch64/AArch64InstrInfo.td +++ llvm/lib/Target/AArch64/AArch64InstrInfo.td @@ -5254,7 +5254,7 @@ // AdvSIMD scalar CPY instruction //---------------------------------------------------------------------------- -defm CPY : SIMDScalarCPY<"cpy">; +defm CPY : SIMDScalarCPY<"mov">; //---------------------------------------------------------------------------- // AdvSIMD scalar pairwise instructions