diff options
| author | Jim Grosbach <grosbach@apple.com> | 2013-09-03 20:08:17 +0000 |
|---|---|---|
| committer | Jim Grosbach <grosbach@apple.com> | 2013-09-03 20:08:17 +0000 |
| commit | 20c925dbf2e45cea0b59d9bae90500f3289576f4 (patch) | |
| tree | da78c64e9b2b53221f0645f2ae9ea9418cecf1e0 /llvm/lib/Target/ARM | |
| parent | e020fa7c9cf784e2b2a748c342daa15e81ccdf3f (diff) | |
| download | bcm5719-llvm-20c925dbf2e45cea0b59d9bae90500f3289576f4.tar.gz bcm5719-llvm-20c925dbf2e45cea0b59d9bae90500f3289576f4.zip | |
Revert "Revert "ARM: Improve pattern for isel mul of vector by scalar.""
This reverts commit r189648.
Fixes for the previously failing clang-side arm_neon_intrinsics test
cases will be checked in separately.
llvm-svn: 189841
Diffstat (limited to 'llvm/lib/Target/ARM')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrNEON.td | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrNEON.td b/llvm/lib/Target/ARM/ARMInstrNEON.td index 49ae3348cd6..f1bd37ea526 100644 --- a/llvm/lib/Target/ARM/ARMInstrNEON.td +++ b/llvm/lib/Target/ARM/ARMInstrNEON.td @@ -4022,6 +4022,17 @@ def : Pat<(v4f32 (fmul (v4f32 QPR:$src1), (DSubReg_i32_reg imm:$lane))), (SubReg_i32_lane imm:$lane)))>; + +def : Pat<(v2f32 (fmul DPR:$Rn, (NEONvdup (f32 SPR:$Rm)))), + (VMULslfd DPR:$Rn, + (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), SPR:$Rm, ssub_0), + (i32 0))>; +def : Pat<(v4f32 (fmul QPR:$Rn, (NEONvdup (f32 SPR:$Rm)))), + (VMULslfq QPR:$Rn, + (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), SPR:$Rm, ssub_0), + (i32 0))>; + + // VQDMULH : Vector Saturating Doubling Multiply Returning High Half defm VQDMULH : N3VInt_HS<0, 0, 0b1011, 0, N3RegFrm, IIC_VMULi16D, IIC_VMULi32D, IIC_VMULi16Q, IIC_VMULi32Q, |

