• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/AMDGPU/

Lines Matching refs:i32

52   return EVT::getVectorVT(Ctx, MVT::i32, StoreSize / 32);
75 AddPromotedToType(ISD::LOAD, MVT::f32, MVT::i32);
143 setLoadExtAction(ISD::SEXTLOAD, VT, MVT::i32, Expand);
148 setLoadExtAction(ISD::ZEXTLOAD, VT, MVT::i32, Expand);
153 setLoadExtAction(ISD::EXTLOAD, VT, MVT::i32, Expand);
195 AddPromotedToType(ISD::STORE, MVT::f32, MVT::i32);
251 setTruncStoreAction(MVT::i64, MVT::i32, Expand);
288 setOperationAction(ISD::Constant, MVT::i32, Legal);
297 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Custom);
364 const MVT ScalarIntVTs[] = { MVT::i32, MVT::i64 };
392 setOperationAction(ISD::FSHR, MVT::i32, Legal);
395 setOperationAction(ISD::ROTL, MVT::i32, Expand);
408 setOperationAction(ISD::SMIN, MVT::i32, Legal);
409 setOperationAction(ISD::UMIN, MVT::i32, Legal);
410 setOperationAction(ISD::SMAX, MVT::i32, Legal);
411 setOperationAction(ISD::UMAX, MVT::i32, Legal);
685 return MVT::i32;
690 return MVT::i32;
757 if (LoadTy.getScalarType() == MVT::i32)
909 return Dest == MVT::i32 ||Dest == MVT::i64 ;
911 return Src == MVT::i32 && Dest == MVT::i64;
1343 SDValue Lo = DAG.getNode(ISD::BITCAST, SL, MVT::i32, Op.getOperand(0));
1344 SDValue Hi = DAG.getNode(ISD::BITCAST, SL, MVT::i32, Op.getOperand(1));
1448 const SDValue Zero = DAG.getConstant(0, SL, MVT::i32);
1449 const SDValue One = DAG.getConstant(1, SL, MVT::i32);
1451 SDValue Lo = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, MVT::i32, Vec, Zero);
1452 SDValue Hi = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, MVT::i32, Vec, One);
1461 const SDValue Zero = DAG.getConstant(0, SL, MVT::i32);
1462 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, MVT::i32, Vec, Zero);
1469 const SDValue One = DAG.getConstant(1, SL, MVT::i32);
1470 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, MVT::i32, Vec, One);
1634 // This is a shortcut for integer division because we have fast i32<->f32
1643 MVT IntVT = MVT::i32;
1974 if (VT == MVT::i32) {
2029 if (VT == MVT::i32) {
2124 SDValue ExpPart = DAG.getNode(AMDGPUISD::BFE_U32, SL, MVT::i32,
2126 DAG.getConstant(FractBits - 32, SL, MVT::i32),
2127 DAG.getConstant(ExpBits, SL, MVT::i32));
2128 SDValue Exp = DAG.getNode(ISD::SUB, SL, MVT::i32, ExpPart,
2129 DAG.getConstant(1023, SL, MVT::i32));
2140 const SDValue Zero = DAG.getConstant(0, SL, MVT::i32);
2141 const SDValue One = DAG.getConstant(1, SL, MVT::i32);
2147 SDValue Hi = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, MVT::i32, VecSrc, One);
2154 const SDValue SignBitMask = DAG.getConstant(UINT32_C(1) << 31, SL, MVT::i32);
2155 SDValue SignBit = DAG.getNode(ISD::AND, SL, MVT::i32, Hi, SignBitMask);
2170 getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), MVT::i32);
2172 const SDValue FiftyOne = DAG.getConstant(FractBits - 1, SL, MVT::i32);
2324 if (ZeroUndef && Src.getValueType() == MVT::i32)
2325 return DAG.getNode(NewOpc, SL, MVT::i32, Src);
2329 const SDValue Zero = DAG.getConstant(0, SL, MVT::i32);
2330 const SDValue One = DAG.getConstant(1, SL, MVT::i32);
2332 SDValue Lo = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, MVT::i32, Vec, Zero);
2333 SDValue Hi = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, MVT::i32, Vec, One);
2336 *DAG.getContext(), MVT::i32);
2341 SDValue OprLo = DAG.getNode(ISDOpc, SL, MVT::i32, Lo);
2342 SDValue OprHi = DAG.getNode(ISDOpc, SL, MVT::i32, Hi);
2344 const SDValue Bits32 = DAG.getConstant(32, SL, MVT::i32);
2347 Add = DAG.getNode(ISD::ADD, SL, MVT::i32, OprLo, Bits32);
2349 NewOpr = DAG.getNode(ISD::SELECT, SL, MVT::i32, Hi0orLo0, Add, OprHi);
2351 Add = DAG.getNode(ISD::ADD, SL, MVT::i32, OprHi, Bits32);
2353 NewOpr = DAG.getNode(ISD::SELECT, SL, MVT::i32, Hi0orLo0, Add, OprLo);
2370 const SDValue Bits32 = DAG.getConstant(64, SL, MVT::i32);
2374 NewOpr = DAG.getNode(ISD::SELECT, SL, MVT::i32,
2419 SDValue ZeroI32 = DAG.getConstant(0, SL, MVT::i32);
2422 LZ = DAG.getNode(ISD::TRUNCATE, SL, MVT::i32, LZ);
2424 SDValue K = DAG.getConstant(127U + 63U, SL, MVT::i32);
2425 SDValue E = DAG.getSelect(SL, MVT::i32,
2427 DAG.getNode(ISD::SUB, SL, MVT::i32, K, LZ),
2440 SDValue V = DAG.getNode(ISD::OR, SL, MVT::i32,
2441 DAG.getNode(ISD::SHL, SL, MVT::i32, E, DAG.getConstant(23, SL, MVT::i32)),
2442 DAG.getNode(ISD::TRUNCATE, SL, MVT::i32, UShl));
2448 SDValue One = DAG.getConstant(1, SL, MVT::i32);
2450 SDValue VTrunc1 = DAG.getNode(ISD::AND, SL, MVT::i32, V, One);
2452 SDValue R = DAG.getSelect(SL, MVT::i32,
2455 DAG.getSelect(SL, MVT::i32, TCmp, VTrunc1, ZeroI32));
2456 R = DAG.getNode(ISD::ADD, SL, MVT::i32, V, R);
2473 SDValue Lo = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, MVT::i32, BC,
2474 DAG.getConstant(0, SL, MVT::i32));
2475 SDValue Hi = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, MVT::i32, BC,
2476 DAG.getConstant(1, SL, MVT::i32));
2484 DAG.getConstant(32, SL, MVT::i32));
2501 // Promote src to i32
2502 SDValue Ext = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::i32, Src);
2538 // Promote src to i32
2539 SDValue Ext = DAG.getNode(ISD::SIGN_EXTEND, DL, MVT::i32, Src);
2587 MVT::i32, FloorMul);
2588 SDValue Lo = DAG.getNode(ISD::FP_TO_UINT, SL, MVT::i32, Fma);
2614 SDValue Zero = DAG.getConstant(0, DL, MVT::i32);
2615 SDValue One = DAG.getConstant(1, DL, MVT::i32);
2619 UH = DAG.getZExtOrTrunc(UH, DL, MVT::i32);
2620 U = DAG.getZExtOrTrunc(U, DL, MVT::i32);
2621 SDValue E = DAG.getNode(ISD::SRL, DL, MVT::i32, UH,
2623 E = DAG.getNode(ISD::AND, DL, MVT::i32, E,
2624 DAG.getConstant(ExpMask, DL, MVT::i32));
2627 E = DAG.getNode(ISD::ADD, DL, MVT::i32, E,
2628 DAG.getConstant(-ExpBiasf64 + ExpBiasf16, DL, MVT::i32));
2630 SDValue M = DAG.getNode(ISD::SRL, DL, MVT::i32, UH,
2631 DAG.getConstant(8, DL, MVT::i32));
2632 M = DAG.getNode(ISD::AND, DL, MVT::i32, M,
2633 DAG.getConstant(0xffe, DL, MVT::i32));
2635 SDValue MaskedSig = DAG.getNode(ISD::AND, DL, MVT::i32, UH,
2636 DAG.getConstant(0x1ff, DL, MVT::i32));
2637 MaskedSig = DAG.getNode(ISD::OR, DL, MVT::i32, MaskedSig, U);
2640 M = DAG.getNode(ISD::OR, DL, MVT::i32, M, Lo40Set);
2643 SDValue I = DAG.getNode(ISD::OR, DL, MVT::i32,
2644 DAG.getSelectCC(DL, M, Zero, DAG.getConstant(0x0200, DL, MVT::i32),
2645 Zero, ISD::SETNE), DAG.getConstant(0x7c00, DL, MVT::i32));
2648 SDValue N = DAG.getNode(ISD::OR, DL, MVT::i32, M,
2649 DAG.getNode(ISD::SHL, DL, MVT::i32, E,
2650 DAG.getConstant(12, DL, MVT::i32)));
2653 SDValue OneSubExp = DAG.getNode(ISD::SUB, DL, MVT::i32,
2655 SDValue B = DAG.getNode(ISD::SMAX, DL, MVT::i32, OneSubExp, Zero);
2656 B = DAG.getNode(ISD::SMIN, DL, MVT::i32, B,
2657 DAG.getConstant(13, DL, MVT::i32));
2659 SDValue SigSetHigh = DAG.getNode(ISD::OR, DL, MVT::i32, M,
2660 DAG.getConstant(0x1000, DL, MVT::i32));
2662 SDValue D = DAG.getNode(ISD::SRL, DL, MVT::i32, SigSetHigh, B);
2663 SDValue D0 = DAG.getNode(ISD::SHL, DL, MVT::i32, D, B);
2665 D = DAG.getNode(ISD::OR, DL, MVT::i32, D, D1);
2668 SDValue VLow3 = DAG.getNode(ISD::AND, DL, MVT::i32, V,
2669 DAG.getConstant(0x7, DL, MVT::i32));
2670 V = DAG.getNode(ISD::SRL, DL, MVT::i32, V,
2671 DAG.getConstant(2, DL, MVT::i32));
2672 SDValue V0 = DAG.getSelectCC(DL, VLow3, DAG.getConstant(3, DL, MVT::i32),
2674 SDValue V1 = DAG.getSelectCC(DL, VLow3, DAG.getConstant(5, DL, MVT::i32),
2676 V1 = DAG.getNode(ISD::OR, DL, MVT::i32, V0, V1);
2677 V = DAG.getNode(ISD::ADD, DL, MVT::i32, V, V1);
2679 V = DAG.getSelectCC(DL, E, DAG.getConstant(30, DL, MVT::i32),
2680 DAG.getConstant(0x7c00, DL, MVT::i32), V, ISD::SETGT);
2681 V = DAG.getSelectCC(DL, E, DAG.getConstant(1039, DL, MVT::i32),
2685 SDValue Sign = DAG.getNode(ISD::SRL, DL, MVT::i32, UH,
2686 DAG.getConstant(16, DL, MVT::i32));
2687 Sign = DAG.getNode(ISD::AND, DL, MVT::i32, Sign,
2688 DAG.getConstant(0x8000, DL, MVT::i32));
2690 V = DAG.getNode(ISD::OR, DL, MVT::i32, Sign, V);
2821 return DAG.getConstant(Result, DL, MVT::i32);
2824 return DAG.getConstant(Src0 >> Offset, DL, MVT::i32);
2839 // i32 vectors are the canonical memory type.
2840 if (VT.getScalarType() == MVT::i32 || isTypeLegal(VT))
3027 SDValue LoRHS = DAG.getConstant(ValLo, SL, MVT::i32);
3028 SDValue HiRHS = DAG.getConstant(ValHi, SL, MVT::i32);
3030 SDValue LoAnd = DAG.getNode(Opc, SL, MVT::i32, Lo, LoRHS);
3031 SDValue HiAnd = DAG.getNode(Opc, SL, MVT::i32, Hi, HiRHS);
3066 if (VT == MVT::i32 && RHSVal == 16 && X.getValueType() == MVT::i16 &&
3072 return DAG.getNode(ISD::BITCAST, SL, MVT::i32, Vec);
3099 SDValue ShiftAmt = DAG.getConstant(RHSVal - 32, SL, MVT::i32);
3101 SDValue Lo = DAG.getNode(ISD::TRUNCATE, SL, MVT::i32, LHS);
3102 SDValue NewShift = DAG.getNode(ISD::SHL, SL, MVT::i32, Lo, ShiftAmt);
3104 const SDValue Zero = DAG.getConstant(0, SL, MVT::i32);
3126 SDValue NewShift = DAG.getNode(ISD::SRA, SL, MVT::i32, Hi,
3127 DAG.getConstant(31, SL, MVT::i32));
3136 SDValue NewShift = DAG.getNode(ISD::SRA, SL, MVT::i32, Hi,
3137 DAG.getConstant(31, SL, MVT::i32));
3180 SDValue One = DAG.getConstant(1, SL, MVT::i32);
3181 SDValue Zero = DAG.getConstant(0, SL, MVT::i32);
3184 SDValue Hi = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, MVT::i32, VecOp, One);
3186 SDValue NewConst = DAG.getConstant(ShiftAmt - 32, SL, MVT::i32);
3187 SDValue NewShift = DAG.getNode(ISD::SRL, SL, MVT::i32, Hi, NewConst);
3243 // i16 (trunc (srl (i32 (trunc x), K)))
3256 EVT::getVectorVT(*DAG.getContext(), MVT::i32,
3257 VT.getVectorNumElements()) : MVT::i32;
3287 return DAG.getNode(MulOpc, SL, MVT::i32, N0, N1);
3297 DAG.getVTList(MVT::i32, MVT::i32), N0, N1);
3334 N0 = DAG.getZExtOrTrunc(N0, DL, MVT::i32);
3335 N1 = DAG.getZExtOrTrunc(N1, DL, MVT::i32);
3338 N0 = DAG.getSExtOrTrunc(N0, DL, MVT::i32);
3339 N1 = DAG.getSExtOrTrunc(N1, DL, MVT::i32);
3366 N0 = DAG.getSExtOrTrunc(N0, DL, MVT::i32);
3367 N1 = DAG.getSExtOrTrunc(N1, DL, MVT::i32);
3369 SDValue Mulhi = DAG.getNode(AMDGPUISD::MULHI_I24, DL, MVT::i32, N0, N1);
3390 N0 = DAG.getZExtOrTrunc(N0, DL, MVT::i32);
3391 N1 = DAG.getZExtOrTrunc(N1, DL, MVT::i32);
3393 SDValue Mulhi = DAG.getNode(AMDGPUISD::MULHI_U24, DL, MVT::i32, N0, N1);
3416 SDValue MulLo = DAG.getNode(MulLoOpc, SL, MVT::i32, N0, N1);
3417 SDValue MulHi = DAG.getNode(MulHiOpc, SL, MVT::i32, N0, N1);
3433 if (LegalVT != MVT::i32 && (Subtarget->has16BitInsts() &&
3437 if (VT != MVT::i32)
3438 Op = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::i32, Op);
3440 SDValue FFBX = DAG.getNode(Opc, DL, MVT::i32, Op);
3441 if (VT != MVT::i32)
3949 DAG.getConstant(Lo_32(CVal), SL, MVT::i32),
3950 DAG.getConstant(Hi_32(CVal), SL, MVT::i32));
3960 DAG.getConstant(Lo_32(CVal), SL, MVT::i32),
3961 DAG.getConstant(Hi_32(CVal), SL, MVT::i32));
4021 return DAG.getConstant(0, DL, MVT::i32);
4048 return DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, MVT::i32, BitsFrom,
4073 SDValue ShiftVal = DAG.getConstant(OffsetVal, DL, MVT::i32);
4074 return DAG.getNode(Signed ? ISD::SRA : ISD::SRL, DL, MVT::i32,
4160 SDValue Ptr = DAG.getFrameIndex(FI, MVT::i32);
4175 SDValue Ptr = DAG.getConstant(Offset, SL, MVT::i32);