mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-23 20:29:30 +00:00
[X86] Removed (unused) FSRL x86 operation
This patch removes the old X86ISD::FSRL op - which allowed float vectors to use the byte right shift operations (causing a domain switch....). Since the refactoring of the shuffle lowering code this no longer has any use. Differential Revision: http://reviews.llvm.org/D10169 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238906 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
60e0898710
commit
dd5cde6e60
@ -10243,7 +10243,7 @@ static SDValue lowerV16X32VectorShuffle(SDValue Op, SDValue V1, SDValue V2,
|
||||
if (is128BitLaneRepeatedShuffleMask(VT, Mask, RepeatedMask)) {
|
||||
if (isSingleInputShuffleMask(Mask)) {
|
||||
unsigned Opc = VT.isInteger() ? X86ISD::PSHUFD : X86ISD::VPERMILPI;
|
||||
return DAG.getNode(Opc, DL, VT, V1,
|
||||
return DAG.getNode(Opc, DL, VT, V1,
|
||||
getV4X86ShuffleImm8ForMask(RepeatedMask, DL, DAG));
|
||||
}
|
||||
|
||||
@ -18175,7 +18175,6 @@ const char *X86TargetLowering::getTargetNodeName(unsigned Opcode) const {
|
||||
case X86ISD::FANDN: return "X86ISD::FANDN";
|
||||
case X86ISD::FOR: return "X86ISD::FOR";
|
||||
case X86ISD::FXOR: return "X86ISD::FXOR";
|
||||
case X86ISD::FSRL: return "X86ISD::FSRL";
|
||||
case X86ISD::FILD: return "X86ISD::FILD";
|
||||
case X86ISD::FILD_FLAG: return "X86ISD::FILD_FLAG";
|
||||
case X86ISD::FP_TO_INT16_IN_MEM: return "X86ISD::FP_TO_INT16_IN_MEM";
|
||||
|
@ -56,10 +56,6 @@ namespace llvm {
|
||||
/// corresponds to X86::ANDNPS or X86::ANDNPD.
|
||||
FANDN,
|
||||
|
||||
/// Bitwise logical right shift of floating point values. This
|
||||
/// corresponds to X86::PSRLDQ.
|
||||
FSRL,
|
||||
|
||||
/// These operations represent an abstract X86 call
|
||||
/// instruction, which includes a bunch of information. In particular the
|
||||
/// operands of these node are:
|
||||
@ -210,7 +206,7 @@ namespace llvm {
|
||||
FDIV_RND,
|
||||
FMAX_RND,
|
||||
FMIN_RND,
|
||||
|
||||
|
||||
// Integer add/sub with unsigned saturation.
|
||||
ADDUS,
|
||||
SUBUS,
|
||||
|
@ -35,8 +35,6 @@ def bc_mmx : PatFrag<(ops node:$in), (x86mmx (bitconvert node:$in))>;
|
||||
// SSE specific DAG Nodes.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
def SDTX86FPShiftOp : SDTypeProfile<1, 2, [ SDTCisSameAs<0, 1>,
|
||||
SDTCisFP<0>, SDTCisInt<2> ]>;
|
||||
def SDTX86VFCMP : SDTypeProfile<1, 3, [SDTCisInt<0>, SDTCisSameAs<1, 2>,
|
||||
SDTCisFP<1>, SDTCisVT<3, i8>,
|
||||
SDTCisVec<1>]>;
|
||||
@ -65,7 +63,6 @@ def X86fandn : SDNode<"X86ISD::FANDN", SDTFPBinOp,
|
||||
[SDNPCommutative, SDNPAssociative]>;
|
||||
def X86frsqrt : SDNode<"X86ISD::FRSQRT", SDTFPUnaryOp>;
|
||||
def X86frcp : SDNode<"X86ISD::FRCP", SDTFPUnaryOp>;
|
||||
def X86fsrl : SDNode<"X86ISD::FSRL", SDTX86FPShiftOp>;
|
||||
def X86fgetsign: SDNode<"X86ISD::FGETSIGNx86",SDTFPToIntOp>;
|
||||
def X86fhadd : SDNode<"X86ISD::FHADD", SDTFPBinOp>;
|
||||
def X86fhsub : SDNode<"X86ISD::FHSUB", SDTFPBinOp>;
|
||||
|
@ -3560,7 +3560,7 @@ multiclass scalar_unary_math_patterns<Intrinsic Intr, string OpcPrefix,
|
||||
let Predicates = [HasAVX] in {
|
||||
def : Pat<(VT (Move VT:$dst, (Intr VT:$src))),
|
||||
(!cast<I>("V"#OpcPrefix#r_Int) VT:$dst, VT:$src)>;
|
||||
|
||||
|
||||
def : Pat<(VT (X86Blendi VT:$dst, (Intr VT:$src), (i8 1))),
|
||||
(!cast<I>("V"#OpcPrefix#r_Int) VT:$dst, VT:$src)>;
|
||||
}
|
||||
@ -4221,16 +4221,6 @@ let ExeDomain = SSEPackedInt, SchedRW = [WriteVecShift], hasSideEffects = 0 in {
|
||||
}
|
||||
} // Constraints = "$src1 = $dst"
|
||||
|
||||
let Predicates = [HasAVX] in {
|
||||
def : Pat<(v2f64 (X86fsrl VR128:$src1, i32immSExt8:$src2)),
|
||||
(VPSRLDQri VR128:$src1, (BYTE_imm imm:$src2))>;
|
||||
}
|
||||
|
||||
let Predicates = [UseSSE2] in {
|
||||
def : Pat<(v2f64 (X86fsrl VR128:$src1, i32immSExt8:$src2)),
|
||||
(PSRLDQri VR128:$src1, (BYTE_imm imm:$src2))>;
|
||||
}
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
// SSE2 - Packed Integer Comparison Instructions
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
Loading…
x
Reference in New Issue
Block a user