From: Owen Anderson Date: Tue, 26 Oct 2010 21:13:59 +0000 (+0000) Subject: Simplify classes for shift instructions, which are never commutable. X-Git-Tag: android-x86-6.0-r1~1003^2~895 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ac92262b61368d32a2435ab7ab17e68c82dfadd1;p=android-x86%2Fexternal-llvm.git Simplify classes for shift instructions, which are never commutable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117398 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/ARMInstrNEON.td b/lib/Target/ARM/ARMInstrNEON.td index afb2afa7d60..a63e9e2414a 100644 --- a/lib/Target/ARM/ARMInstrNEON.td +++ b/lib/Target/ARM/ARMInstrNEON.td @@ -1291,12 +1291,12 @@ class N3VDIntSL16 op21_20, bits<4> op11_8, InstrItinClass itin, } class N3VDIntSh op21_20, bits<4> op11_8, bit op4, Format f, InstrItinClass itin, string OpcodeStr, string Dt, - ValueType ResTy, ValueType OpTy, Intrinsic IntOp, bit Commutable> + ValueType ResTy, ValueType OpTy, Intrinsic IntOp> : N3V { - let isCommutable = Commutable; + let isCommutable = 0; } class N3VQInt op21_20, bits<4> op11_8, bit op4, @@ -1334,12 +1334,12 @@ class N3VQIntSL16 op21_20, bits<4> op11_8, InstrItinClass itin, } class N3VQIntSh op21_20, bits<4> op11_8, bit op4, Format f, InstrItinClass itin, string OpcodeStr, string Dt, - ValueType ResTy, ValueType OpTy, Intrinsic IntOp, bit Commutable> + ValueType ResTy, ValueType OpTy, Intrinsic IntOp> : N3V { - let isCommutable = Commutable; + let isCommutable = 0; } // Multiply-Add/Sub operations: single-, double- and quad-register. @@ -1958,22 +1958,22 @@ multiclass N3VInt_HSSh op11_8, bit op4, Format f, InstrItinClass itinD16, InstrItinClass itinD32, InstrItinClass itinQ16, InstrItinClass itinQ32, string OpcodeStr, string Dt, - Intrinsic IntOp, bit Commutable = 0> { + Intrinsic IntOp> { // 64-bit vector types. def v4i16 : N3VDIntSh; + v4i16, v4i16, IntOp>; def v2i32 : N3VDIntSh; + v2i32, v2i32, IntOp>; // 128-bit vector types. def v8i16 : N3VQIntSh; + v8i16, v8i16, IntOp>; def v4i32 : N3VQIntSh; + v4i32, v4i32, IntOp>; } multiclass N3VIntSL_HS op11_8, @@ -2009,15 +2009,15 @@ multiclass N3VInt_QHSSh op11_8, bit op4, Format f, InstrItinClass itinD16, InstrItinClass itinD32, InstrItinClass itinQ16, InstrItinClass itinQ32, string OpcodeStr, string Dt, - Intrinsic IntOp, bit Commutable = 0> + Intrinsic IntOp> : N3VInt_HSSh { + OpcodeStr, Dt, IntOp> { def v8i8 : N3VDIntSh; + v8i8, v8i8, IntOp>; def v16i8 : N3VQIntSh; + v16i8, v16i8, IntOp>; } @@ -2040,15 +2040,15 @@ multiclass N3VInt_QHSDSh op11_8, bit op4, Format f, InstrItinClass itinD16, InstrItinClass itinD32, InstrItinClass itinQ16, InstrItinClass itinQ32, string OpcodeStr, string Dt, - Intrinsic IntOp, bit Commutable = 0> + Intrinsic IntOp> : N3VInt_QHSSh { + OpcodeStr, Dt, IntOp> { def v1i64 : N3VDIntSh; + v1i64, v1i64, IntOp>; def v2i64 : N3VQIntSh; + v2i64, v2i64, IntOp>; } // Neon Narrowing 3-register vector intrinsics, @@ -3230,10 +3230,10 @@ def VRSQRTSfq : N3VQInt<0, 0, 0b10, 0b1111, 1, N3RegFrm, // VSHL : Vector Shift defm VSHLs : N3VInt_QHSDSh<0, 0, 0b0100, 0, N3RegVShFrm, IIC_VSHLiD, IIC_VSHLiD, IIC_VSHLiQ, IIC_VSHLiQ, - "vshl", "s", int_arm_neon_vshifts, 0>; + "vshl", "s", int_arm_neon_vshifts>; defm VSHLu : N3VInt_QHSDSh<1, 0, 0b0100, 0, N3RegVShFrm, IIC_VSHLiD, IIC_VSHLiD, IIC_VSHLiQ, IIC_VSHLiQ, - "vshl", "u", int_arm_neon_vshiftu, 0>; + "vshl", "u", int_arm_neon_vshiftu>; // VSHL : Vector Shift Left (Immediate) defm VSHLi : N2VSh_QHSD<0, 1, 0b0101, 1, IIC_VSHLiD, "vshl", "i", NEONvshl, N2RegVShLFrm>;