diff options
author | James Molloy <james.molloy@arm.com> | 2014-01-20 17:14:48 +0000 |
---|---|---|
committer | James Molloy <james.molloy@arm.com> | 2014-01-20 17:14:48 +0000 |
commit | 43ccae1bb4fb602595c028af2414f7c83b23ffce (patch) | |
tree | 9dd68231b406e918c78aa328f7a41f6018d0c12a /llvm/lib/Target/ARM/ARMInstrNEON.td | |
parent | db2a4af37fadedecaf3e7b396af75f91757a0719 (diff) | |
download | bcm5719-llvm-43ccae1bb4fb602595c028af2414f7c83b23ffce.tar.gz bcm5719-llvm-43ccae1bb4fb602595c028af2414f7c83b23ffce.zip |
Remove the useless pseudo instructions VDUPfdf and VDUPfqf, replacing them with patterns to match VDUPLN.
llvm-svn: 199675
Diffstat (limited to 'llvm/lib/Target/ARM/ARMInstrNEON.td')
-rw-r--r-- | llvm/lib/Target/ARM/ARMInstrNEON.td | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrNEON.td b/llvm/lib/Target/ARM/ARMInstrNEON.td index 0b05c08ed94..3d993eb9642 100644 --- a/llvm/lib/Target/ARM/ARMInstrNEON.td +++ b/llvm/lib/Target/ARM/ARMInstrNEON.td @@ -5490,10 +5490,12 @@ def : Pat<(v4f32 (NEONvduplane (v4f32 QPR:$src), imm:$lane)), (DSubReg_i32_reg imm:$lane))), (SubReg_i32_lane imm:$lane)))>; -def VDUPfdf : PseudoNeonI<(outs DPR:$dst), (ins SPR:$src), IIC_VMOVD, "", - [(set DPR:$dst, (v2f32 (NEONvdup (f32 SPR:$src))))]>; -def VDUPfqf : PseudoNeonI<(outs QPR:$dst), (ins SPR:$src), IIC_VMOVD, "", - [(set QPR:$dst, (v4f32 (NEONvdup (f32 SPR:$src))))]>; +def : Pat<(v2f32 (NEONvdup (f32 SPR:$src))), + (v2f32 (VDUPLN32d (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), + SPR:$src, ssub_0), (i32 0)))>; +def : Pat<(v4f32 (NEONvdup (f32 SPR:$src))), + (v4f32 (VDUPLN32q (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), + SPR:$src, ssub_0), (i32 0)))>; // VMOVN : Vector Narrowing Move defm VMOVN : N2VN_HSD<0b11,0b11,0b10,0b00100,0,0, IIC_VMOVN, |