Home | History | Annotate | Download | only in X86

Lines Matching refs:BITCAST

414     setOperationAction(ISD::BITCAST        , MVT::f32  , Expand);
415 setOperationAction(ISD::BITCAST , MVT::i32 , Expand);
417 setOperationAction(ISD::BITCAST , MVT::f64 , Expand);
419 setOperationAction(ISD::BITCAST , MVT::i64 , Expand);
918 setOperationAction(ISD::BITCAST, MVT::v8i8, Expand);
919 setOperationAction(ISD::BITCAST, MVT::v4i16, Expand);
920 setOperationAction(ISD::BITCAST, MVT::v2i32, Expand);
921 setOperationAction(ISD::BITCAST, MVT::v1i64, Expand);
1053 setOperationAction(ISD::BITCAST, MVT::v2i32, Custom);
1054 setOperationAction(ISD::BITCAST, MVT::v4i16, Custom);
1055 setOperationAction(ISD::BITCAST, MVT::v8i8, Custom);
1900 ValToCopy = DAG.getNode(ISD::BITCAST, dl, VA.getLocVT(), ValToCopy);
1937 ValToCopy = DAG.getNode(ISD::BITCAST, dl, MVT::i64, ValToCopy);
1943 ValToCopy = DAG.getNode(ISD::BITCAST, dl, MVT::v4f32,ValToCopy);
2315 ArgValue = DAG.getNode(ISD::BITCAST, dl, VA.getValVT(), ArgValue);
2704 Arg = DAG.getNode(ISD::BITCAST, dl, MVT::i64, Arg);
2711 Arg = DAG.getNode(ISD::BITCAST, dl, RegVT, Arg);
4931 return DAG.getNode(ISD::BITCAST, dl, VT, Vec);
4937 /// Then bitcast to their original type, ensuring they get CSE'd.
4957 return DAG.getNode(ISD::BITCAST, dl, VT, Vec);
5033 V = DAG.getNode(ISD::BITCAST, dl, MVT::v4f32, V);
5044 V = DAG.getNode(ISD::BITCAST, dl, MVT::v8f32, V);
5050 return DAG.getNode(ISD::BITCAST, dl, VT, V);
5237 if (Opcode == ISD::BITCAST) {
5443 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, V);
5559 SrcOp = DAG.getNode(ISD::BITCAST, dl, ShVT, SrcOp);
5560 return DAG.getNode(ISD::BITCAST, dl, VT,
5737 return DAG.getNode(ISD::BITCAST, DL, VT, ResNode);
6037 SDValue FullMask = DAG.getNode(ISD::BITCAST, dl, MVT::v16i1,
6048 DstVec = DAG.getNode(ISD::BITCAST, dl, VT, VecAsImm);
6068 return DAG.getNode(ISD::BITCAST, dl, VT, Select);
6596 return DAG.getNode(ISD::BITCAST, dl, VT, Item);
6631 return DAG.getNode(ISD::BITCAST, dl, VT, Item);
7004 V1 = DAG.getNode(ISD::BITCAST, DL, MVT::v4i32, V1);
7009 ISD::BITCAST, DL, MVT::v2i64,
7018 V1 = DAG.getNode(ISD::BITCAST, DL, MVT::v2f64, V1);
7019 V2 = DAG.getNode(ISD::BITCAST, DL, MVT::v2f64, V2);
7020 return DAG.getNode(ISD::BITCAST, DL, MVT::v2i64,
7145 return DAG.getNode(ISD::BITCAST, DL, MVT::v4i32,
7148 DAG.getNode(ISD::BITCAST, DL, MVT::v4f32, V1),
7149 DAG.getNode(ISD::BITCAST, DL, MVT::v4f32, V2), Mask));
7215 V = DAG.getNode(ISD::BITCAST, DL, MVT::v8i16,
7217 DAG.getNode(ISD::BITCAST, DL, MVT::v4i32, V),
7404 V = DAG.getNode(ISD::BITCAST, DL, MVT::v8i16,
7406 DAG.getNode(ISD::BITCAST, DL, MVT::v4i32, V),
7660 LoV = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, LoV);
7661 HiV = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, HiV);
7663 return DAG.getNode(ISD::BITCAST, DL, MVT::v8i16,
7758 ISD::BITCAST, DL, MVT::v16i8,
7760 DAG.getNode(ISD::BITCAST, DL, MVT::v8i16, V1),
7774 ISD::BITCAST, DL, MVT::v16i8,
7776 DAG.getNode(ISD::BITCAST, DL, MVT::v8i16, V1),
7839 V1 = DAG.getNode(ISD::BITCAST, DL, MVT::v8i16, V);
7856 V1 = DAG.getNode(ISD::BITCAST, DL, MVT::v8i16,
7858 V2 = DAG.getNode(ISD::BITCAST, DL, MVT::v8i16,
7966 V1 = DAG.getNode(ISD::BITCAST, dl, NewVT, V1);
7967 V2 = DAG.getNode(ISD::BITCAST, dl, NewVT, V2);
7968 return DAG.getNode(ISD::BITCAST, dl, VT,
8081 V1 = DAG.getNode(ISD::BITCAST, dl, VT, V1);
8082 V2 = DAG.getNode(ISD::BITCAST, dl, VT, V2);
8087 return DAG.getNode(ISD::BITCAST, dl, VT, Ret);
8137 V1 = DAG.getNode(ISD::BITCAST, dl, ShufVT, V1);
8226 DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V1),
8227 DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V2), &MaskV[0]);
8228 NewV = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, NewV);
8295 return DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V1);
8302 return DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V1);
8466 V1 = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V1);
8467 V2 = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V2);
8529 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, NewV);
8603 SDValue V1 = DAG.getNode(ISD::BITCAST, dl, NewVT, SVOp->getOperand(0));
8604 SDValue V2 = DAG.getNode(ISD::BITCAST, dl, NewVT, SVOp->getOperand(1));
8623 SrcOp.getOperand(0).getOpcode() == ISD::BITCAST &&
8627 return DAG.getNode(ISD::BITCAST, dl, VT,
8637 return DAG.getNode(ISD::BITCAST, dl, VT,
8639 DAG.getNode(ISD::BITCAST, dl,
8899 while (V.hasOneUse() && V.getOpcode() == ISD::BITCAST)
8917 V1 = DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, V1);
8918 return DAG.getNode(ISD::BITCAST, dl, VT,
8936 return DAG.getNode(ISD::BITCAST, dl, VT,
8938 DAG.getNode(ISD::BITCAST, dl, MVT::v4f32, V1),
8939 DAG.getNode(ISD::BITCAST, dl, MVT::v4f32, V2), DAG));
9160 if (V1.getOpcode() == ISD::BITCAST &&
9165 // (bitcast (sclr2vec (ext_vec_elt x))) -> (bitcast x)
9178 // (bitcast (sclr2vec (ext_vec_elt x))) -> (bitcast (extract_subvector x)).
9185 V1 = DAG.getNode(ISD::BITCAST, DL, V1VT, V);
9189 return DAG.getNode(ISD::BITCAST, DL, VT,
9223 return DAG.getNode(ISD::BITCAST, dl, VT, NewOp);
9403 // FIXME: This should also accept a bitcast of a splat? Be careful, not
9547 // Bitcast is for VPERMPS since mask is v8i32 but node takes v8f32
9549 DAG.getNode(ISD::BITCAST, dl, VT, Mask), V1);
9551 DAG.getNode(ISD::BITCAST, dl, VT, Mask), V2);
9668 LHS = DAG.getNode(ISD::BITCAST, dl, VT, LHS);
9669 RHS = DAG.getNode(ISD::BITCAST, dl, VT, RHS);
9674 return DAG.getNode(ISD::BITCAST, dl, VT, Ret);
9721 DAG.getNode(ISD::BITCAST, dl,
9735 // result has a single use which is a store or a bitcast to i32. And in
9744 (User->getOpcode() != ISD::BITCAST ||
9748 DAG.getNode(ISD::BITCAST, dl, MVT::v4i32,
9751 return DAG.getNode(ISD::BITCAST, dl, MVT::f32, Extract);
9861 BITCAST, dl,
10072 return DAG.getNode(ISD::BITCAST, dl, OpVT,
10802 DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, XR1),
10808 SDValue XR2F = DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, Unpck1);
10816 SDValue S2F = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, Sub);
10820 DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, Shuffle),
10844 DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, Load),
10849 DAG.getNode(ISD::BITCAST, dl, MVT::v2i64,
10852 DAG.getNode(ISD::BITCAST, dl, MVT::v2i64,
10856 DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, Or),
11109 OpLo = DAG.getNode(ISD::BITCAST, dl, HVT, OpLo);
11110 OpHi = DAG.getNode(ISD::BITCAST, dl, HVT, OpHi);
11227 In = DAG.getNode(ISD::BITCAST, DL, MVT::v8i32, In);
11238 OpLo = DAG.getNode(ISD::BITCAST, DL, MVT::v4i32, OpLo);
11239 OpHi = DAG.getNode(ISD::BITCAST, DL, MVT::v4i32, OpHi);
11247 In = DAG.getNode(ISD::BITCAST, DL, MVT::v32i8, In);
11264 In = DAG.getNode(ISD::BITCAST, DL, MVT::v4i64, In);
11271 return DAG.getNode(ISD::BITCAST, DL, VT, In);
11280 OpLo = DAG.getNode(ISD::BITCAST, DL, MVT::v16i8, OpLo);
11281 OpHi = DAG.getNode(ISD::BITCAST, DL, MVT::v16i8, OpHi);
11291 OpLo = DAG.getNode(ISD::BITCAST, DL, MVT::v4i32, OpLo);
11292 OpHi = DAG.getNode(ISD::BITCAST, DL, MVT::v4i32, OpHi);
11297 return DAG.getNode(ISD::BITCAST, DL, MVT::v8i16, res);
11314 DAG.getNode(ISD::BITCAST, DL, NVT, In),
11396 return DAG.getNode(ISD::BITCAST, dl, VT,
11398 DAG.getNode(ISD::BITCAST, dl, ANDVT,
11400 DAG.getNode(ISD::BITCAST, dl, ANDVT, Mask)));
11431 return DAG.getNode(ISD::BITCAST, dl, VT,
11433 DAG.getNode(ISD::BITCAST, dl, XORVT,
11435 DAG.getNode(ISD::BITCAST, dl, XORVT, Mask)));
11490 SignBit = DAG.getNode(ISD::BITCAST, dl, MVT::v4f32, SignBit);
11610 VecIns[i] = DAG.getNode(ISD::BITCAST, DL, TestVT, VecIns[i]);
12312 Op0 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, Op0);
12313 Op1 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, Op1);
12347 return DAG.getNode(ISD::BITCAST, dl, VT, Result);
12356 Op0 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, Op0);
12357 Op1 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, Op1);
12370 return DAG.getNode(ISD::BITCAST, dl, VT, Result);
13474 ShAmt = DAG.getNode(ISD::BITCAST, dl, ShVT, ShAmt);
13923 SDValue LHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i1, Op.getOperand(1));
13924 SDValue RHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i1, Op.getOperand(2));
14211 MaskInReg = DAG.getNode(ISD::BITCAST, dl, MaskVT, Mask);
14239 MaskInReg = DAG.getNode(ISD::BITCAST, dl, MaskVT, Mask);
14262 MaskInReg = DAG.getNode(ISD::BITCAST, dl, MaskVT, Mask);
15053 Evens = DAG.getNode(ISD::BITCAST, dl, VT, Evens);
15054 Odds = DAG.getNode(ISD::BITCAST, dl, VT, Odds);
15082 A = DAG.getNode(ISD::BITCAST, dl, MulVT, A);
15083 B = DAG.getNode(ISD::BITCAST, dl, MulVT, B);
15084 Ahi = DAG.getNode(ISD::BITCAST, dl, MulVT, Ahi);
15085 Bhi = DAG.getNode(ISD::BITCAST, dl, MulVT, Bhi);
15147 return DAG.getNode(ISD::BITCAST, dl, VT, CallInfo.first);
15170 SDValue Mul1 = DAG.getNode(ISD::BITCAST, dl, VT,
15172 SDValue Mul2 = DAG.getNode(ISD::BITCAST, dl, VT,
15240 SHL = DAG.getNode(ISD::BITCAST, dl, VT, SHL);
15253 SRL = DAG.getNode(ISD::BITCAST, dl, VT, SRL);
15286 SHL = DAG.getNode(ISD::BITCAST, dl, VT, SHL);
15299 SRL = DAG.getNode(ISD::BITCAST, dl, VT, SRL);
15331 Amt.getOpcode() == ISD::BITCAST &&
15493 Amt.getOpcode() == ISD::BITCAST &&
15594 Op = DAG.getNode(ISD::BITCAST, dl, MVT::v4f32, Op);
15664 SDValue BitCast1 = DAG.getNode(ISD::BITCAST, dl, CastVT, Shift1);
15665 SDValue BitCast2 = DAG.getNode(ISD::BITCAST, dl, CastVT, Shift2);
15668 return DAG.getNode(ISD::BITCAST, dl, VT, Result);
15677 Op = DAG.getNode(ISD::BITCAST, dl, VT, Op);
15690 M = DAG.getNode(ISD::BITCAST, dl, VT, M);
15701 M = DAG.getNode(ISD::BITCAST, dl, VT, M);
15891 if (Op0.getOpcode() == ISD::BITCAST &&
16026 SDValue ToV2F64 = DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, BV);
16032 Subtarget->hasMMX() && "Unexpected custom BITCAST");
16035 "Unexpected custom BITCAST");
16244 case ISD::BITCAST: return LowerBITCAST(Op, Subtarget, DAG);
16338 DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, VBias));
16339 Or = DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, Or);
16443 case ISD::BITCAST: {
16457 SDValue ToVecInt = DAG.getNode(ISD::BITCAST, dl, WiderVT, Expanded);
18391 return DAG.getNode(ISD::BITCAST, dl, VT, ResNode);
18469 case ISD::BITCAST:
18521 case ISD::BITCAST:
18584 case ISD::BITCAST:
18689 V = DAG.getNode(ISD::BITCAST, DL, MVT::v4i32, V);
18694 return DAG.getNode(ISD::BITCAST, DL, MVT::v8i16, V);
18706 while (D.getOpcode() == ISD::BITCAST && D.hasOneUse())
18729 V = DAG.getNode(ISD::BITCAST, DL, MVT::v8i16, D.getOperand(0));
18816 // fold: (shuffle (bitcast (BINOP A, B)), Undef, <Mask>) ->
18817 // (shuffle (BINOP (bitcast A), (bitcast B)), Undef, <Mask>)
18819 // We do this only if both the bitcast and the BINOP dag nodes have
18826 N0.getOpcode() == ISD::BITCAST) {
18855 SDValue BC00 = DAG.getNode(ISD::BITCAST, dl, VT, BC0.getOperand(0));
18856 SDValue BC01 = DAG.getNode(ISD::BITCAST, dl, VT, BC0.getOperand(1));
18915 if (InVec.getOpcode() == ISD::BITCAST) {
18949 if (LdNode.getOpcode() == ISD::BITCAST) {
18954 AllowedUses = 1; // only allow 1 load use if we have a bitcast
18967 // If there's a bitcast before the shuffle, check if the load type and
18987 Shuffle = DAG.getNode(ISD::BITCAST, dl, VT, Shuffle);
19003 // Detect whether we are trying to convert from mmx to i32 and the bitcast
19005 if (InputVector.getNode()->getOpcode() == llvm::ISD::BITCAST &&
19634 DAG.getNode(ISD::BITCAST, DL, CondVT, RHS));
19637 DAG.getNode(ISD::BITCAST, DL, CondVT, LHS));
19639 return DAG.getNode(ISD::BITCAST, DL, VT, Ret);
19678 // (v4i32 (bitcast (movsd (v2i64 (bitcast A)),
19679 // (v2i64 (bitcast B)))))
19682 // (v4f32 (bitcast (movsd (v2f64 (bitcast A)),
19683 // (v2f64 (bitcast B)))))
19686 // (v4i32 (bitcast (movsd (v2i64 (bitcast B)),
19687 // (v2i64 (bitcast A)))))
19690 // (v4f32 (bitcast (movsd (v2f64 (bitcast B)),
19691 // (v2f64 (bitcast A)))))
19708 SDValue NewA = DAG.getNode(ISD::BITCAST, DL, NVT, LHS);
19709 SDValue NewB = DAG.getNode(ISD::BITCAST, DL, NVT, RHS);
19712 return DAG.getNode(ISD::BITCAST, DL, VT, Select);
20410 // On a 32-bit target, we cannot bitcast the 64-bit float to a
20417 SDValue Vector32 = DAG.getNode(ISD::BITCAST, DL, MVT::v4f32,
20424 SDValue OnesOrZeroesI = DAG.getNode(ISD::BITCAST, DL, IntVT, OnesOrZeroesF);
20446 if (N->getOpcode() == ISD::BITCAST)
20651 // Look through mask bitcast.
20652 if (Mask.getOpcode() == ISD::BITCAST)
20654 if (X.getOpcode() == ISD::BITCAST)
20656 if (Y.getOpcode() == ISD::BITCAST)
20688 return DAG.getNode(ISD::BITCAST, DL, VT, Mask);
20696 X = DAG.getNode(ISD::BITCAST, DL, BlendVT, X);
20697 Y = DAG.getNode(ISD::BITCAST, DL, BlendVT, Y);
20698 Mask = DAG.getNode(ISD::BITCAST, DL, BlendVT, Mask);
20700 return DAG.getNode(ISD::BITCAST, DL, VT, Mask);
20962 // Bitcast the loaded value to a vector of the original element type, in
20964 SDValue SlicedVec = DAG.getNode(ISD::BITCAST, dl, WideVecVT, Res);
20989 Shuff = DAG.getNode(ISD::BITCAST, dl, RegVT, Shuff);
21009 // Bitcast to the requested type.
21010 Shuff = DAG.getNode(ISD::BITCAST, dl, RegVT, Shuff);
21084 SDValue WideVec = DAG.getNode(ISD::BITCAST, dl, WideVecVT, St->getValue());
21113 // Bitcast the original vector into a vector of store-size units
21117 SDValue ShuffWide = DAG.getNode(ISD::BITCAST, dl, StoreVecVT, Shuff);
21489 if (Op.getOpcode() == ISD::BITCAST)
21495 return DAG.getNode(ISD::BITCAST, SDLoc(N), VT, Op);
21955 // (vzext (bitcast (vzext (x)) -> (vzext x)
21957 while (In.getOpcode() == ISD::BITCAST)