ARM assmebler parsing for two-operand VMUL instructions.
Combined destination and first source operand for f32 variant of the VMUL (by scalar) instruction. rdar://10522016 llvm-svn: 145842
This commit is contained in:
parent
8efef60f69
commit
0a978ef715
|
@ -231,6 +231,8 @@ class VFP2InstAlias<string Asm, dag Result, bit Emit = 0b1>
|
||||||
: InstAlias<Asm, Result, Emit>, Requires<[HasVFP2]>;
|
: InstAlias<Asm, Result, Emit>, Requires<[HasVFP2]>;
|
||||||
class VFP3InstAlias<string Asm, dag Result, bit Emit = 0b1>
|
class VFP3InstAlias<string Asm, dag Result, bit Emit = 0b1>
|
||||||
: InstAlias<Asm, Result, Emit>, Requires<[HasVFP3]>;
|
: InstAlias<Asm, Result, Emit>, Requires<[HasVFP3]>;
|
||||||
|
class NEONInstAlias<string Asm, dag Result, bit Emit = 0b1>
|
||||||
|
: InstAlias<Asm, Result, Emit>, Requires<[HasNEON]>;
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// ARM Instruction templates.
|
// ARM Instruction templates.
|
||||||
|
|
|
@ -3672,6 +3672,15 @@ def VMULslfd : N3VDSL<0b10, 0b1001, IIC_VBIND, "vmul", "f32", v2f32, fmul>;
|
||||||
def VMULslfq : N3VQSL<0b10, 0b1001, IIC_VBINQ, "vmul", "f32", v4f32,
|
def VMULslfq : N3VQSL<0b10, 0b1001, IIC_VBINQ, "vmul", "f32", v4f32,
|
||||||
v2f32, fmul>;
|
v2f32, fmul>;
|
||||||
|
|
||||||
|
// Two-operand aliases.
|
||||||
|
def : NEONInstAlias<"vmul${p}.f32 $Ddn $Dm$lane",
|
||||||
|
(VMULslfd DPR:$Ddn, DPR:$Ddn, DPR_VFP2:$Dm,
|
||||||
|
VectorIndex32:$lane, pred:$p)>;
|
||||||
|
def : NEONInstAlias<"vmul${p}.f32 $Qdn $Dm$lane",
|
||||||
|
(VMULslfq QPR:$Qdn, QPR:$Qdn, DPR_VFP2:$Dm,
|
||||||
|
VectorIndex32:$lane, pred:$p)>;
|
||||||
|
|
||||||
|
|
||||||
def : Pat<(v8i16 (mul (v8i16 QPR:$src1),
|
def : Pat<(v8i16 (mul (v8i16 QPR:$src1),
|
||||||
(v8i16 (NEONvduplane (v8i16 QPR:$src2), imm:$lane)))),
|
(v8i16 (NEONvduplane (v8i16 QPR:$src2), imm:$lane)))),
|
||||||
(v8i16 (VMULslv8i16 (v8i16 QPR:$src1),
|
(v8i16 (VMULslv8i16 (v8i16 QPR:$src1),
|
||||||
|
|
Loading…
Reference in New Issue