diff options
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrNEON.td | 24 | 
1 files changed, 15 insertions, 9 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrNEON.td b/llvm/lib/Target/ARM/ARMInstrNEON.td index e69ae6151ed..5cf81ee6af2 100644 --- a/llvm/lib/Target/ARM/ARMInstrNEON.td +++ b/llvm/lib/Target/ARM/ARMInstrNEON.td @@ -285,8 +285,9 @@ class N2VQInt<bits<2> op24_23, bits<2> op21_20, bits<2> op19_18,  // Basic 2-register operations, scalar single-precision  class N2VDInts<SDNode OpNode, NeonI Inst>    : NEONFPPat<(f32 (OpNode SPR:$a)), -         (EXTRACT_SUBREG (Inst (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), SPR:$a, arm_ssubreg_0)), -          arm_ssubreg_0)>; +              (EXTRACT_SUBREG (Inst (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), +                                     SPR:$a, arm_ssubreg_0)), +              arm_ssubreg_0)>;  // Narrow 2-register intrinsics.  class N2VNInt<bits<2> op24_23, bits<2> op21_20, bits<2> op19_18, @@ -328,9 +329,11 @@ class N3VQ<bit op24, bit op23, bits<2> op21_20, bits<4> op11_8, bit op4,  // Basic 3-register operations, scalar single-precision  class N3VDs<SDNode OpNode, NeonI Inst>    : NEONFPPat<(f32 (OpNode SPR:$a, SPR:$b)), -         (EXTRACT_SUBREG (Inst (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), SPR:$a, arm_ssubreg_0), -                               (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), SPR:$b, arm_ssubreg_0)), -          arm_ssubreg_0)>; +              (EXTRACT_SUBREG (Inst (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), +                                                   SPR:$a, arm_ssubreg_0), +                                    (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), +                                                   SPR:$b, arm_ssubreg_0)), +              arm_ssubreg_0)>;  // Basic 3-register intrinsics, both double- and quad-register.  class N3VDInt<bit op24, bit op23, bits<2> op21_20, bits<4> op11_8, bit op4, @@ -372,10 +375,13 @@ class N3VQMulOp<bit op24, bit op23, bits<2> op21_20, bits<4> op11_8, bit op4,  class N3VDMulOps<SDNode MulNode, SDNode OpNode, NeonI Inst>    : NEONFPPat<(f32 (OpNode SPR:$acc,                          (f32 (MulNode SPR:$a, SPR:$b)))), -         (EXTRACT_SUBREG (Inst (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), SPR:$acc, arm_ssubreg_0), -                               (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), SPR:$a, arm_ssubreg_0), -                               (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), SPR:$b, arm_ssubreg_0)), -          arm_ssubreg_0)>; +              (EXTRACT_SUBREG (Inst (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), +                                                   SPR:$acc, arm_ssubreg_0), +                                    (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), +                                                   SPR:$a, arm_ssubreg_0), +                                    (INSERT_SUBREG (v2f32 (IMPLICIT_DEF)), +                                                   SPR:$b, arm_ssubreg_0)), +               arm_ssubreg_0)>;  // Neon 3-argument intrinsics, both double- and quad-register.  // The destination register is also used as the first source operand register.  | 

