Lines Matching refs:Addr

113   virtual bool SelectADDRVTX_READ(SDValue Addr, SDValue &Base, SDValue &Offset);
114 virtual bool SelectADDRIndirect(SDValue Addr, SDValue &Base, SDValue &Offset);
120 bool SelectMUBUF(SDValue Addr, SDValue &SRsrc, SDValue &VAddr,
124 bool SelectMUBUFAddr64(SDValue Addr, SDValue &SRsrc, SDValue &VAddr,
127 bool SelectMUBUFAddr64(SDValue Addr, SDValue &SRsrc,
131 SDValue Addr, SDValue &RSrc, SDValue &VAddr,
134 SDValue Addr, SDValue &SRsrc, SDValue &Soffset,
137 bool SelectMUBUFOffset(SDValue Addr, SDValue &SRsrc, SDValue &SOffset,
140 bool SelectMUBUFOffset(SDValue Addr, SDValue &SRsrc, SDValue &Soffset,
142 bool SelectMUBUFOffset(SDValue Addr, SDValue &SRsrc, SDValue &Soffset,
145 bool SelectFlatAtomic(SDValue Addr, SDValue &VAddr,
147 bool SelectFlatAtomicSigned(SDValue Addr, SDValue &VAddr,
151 bool SelectFlatOffset(SDValue Addr, SDValue &VAddr,
156 SDValue Expand32BitAddress(SDValue Addr) const;
157 bool SelectSMRD(SDValue Addr, SDValue &SBase, SDValue &Offset,
159 bool SelectSMRDImm(SDValue Addr, SDValue &SBase, SDValue &Offset) const;
160 bool SelectSMRDImm32(SDValue Addr, SDValue &SBase, SDValue &Offset) const;
161 bool SelectSMRDSgpr(SDValue Addr, SDValue &SBase, SDValue &Offset) const;
162 bool SelectSMRDBufferImm(SDValue Addr, SDValue &Offset) const;
163 bool SelectSMRDBufferImm32(SDValue Addr, SDValue &Offset) const;
223 bool SelectGlobalValueConstantOffset(SDValue Addr, SDValue& IntPtr);
224 bool SelectGlobalValueVariableOffset(SDValue Addr, SDValue &BaseReg,
232 bool SelectADDRIndirect(SDValue Addr, SDValue &Base,
234 bool SelectADDRVTX_READ(SDValue Addr, SDValue &Base,
673 bool AMDGPUDAGToDAGISel::SelectADDRVTX_READ(SDValue Addr, SDValue &Base, in SelectADDRVTX_READ() argument
678 bool AMDGPUDAGToDAGISel::SelectADDRIndirect(SDValue Addr, SDValue &Base, in SelectADDRIndirect() argument
681 SDLoc DL(Addr); in SelectADDRIndirect()
683 if ((C = dyn_cast<ConstantSDNode>(Addr))) { in SelectADDRIndirect()
686 } else if ((Addr.getOpcode() == AMDGPUISD::DWORDADDR) && in SelectADDRIndirect()
687 (C = dyn_cast<ConstantSDNode>(Addr.getOperand(0)))) { in SelectADDRIndirect()
690 } else if ((Addr.getOpcode() == ISD::ADD || Addr.getOpcode() == ISD::OR) && in SelectADDRIndirect()
691 (C = dyn_cast<ConstantSDNode>(Addr.getOperand(1)))) { in SelectADDRIndirect()
692 Base = Addr.getOperand(0); in SelectADDRIndirect()
695 Base = Addr; in SelectADDRIndirect()
847 bool AMDGPUDAGToDAGISel::SelectDS1Addr1Offset(SDValue Addr, SDValue &Base, in SelectDS1Addr1Offset() argument
849 SDLoc DL(Addr); in SelectDS1Addr1Offset()
850 if (CurDAG->isBaseWithConstantOffset(Addr)) { in SelectDS1Addr1Offset()
851 SDValue N0 = Addr.getOperand(0); in SelectDS1Addr1Offset()
852 SDValue N1 = Addr.getOperand(1); in SelectDS1Addr1Offset()
860 } else if (Addr.getOpcode() == ISD::SUB) { in SelectDS1Addr1Offset()
862 if (const ConstantSDNode *C = dyn_cast<ConstantSDNode>(Addr.getOperand(0))) { in SelectDS1Addr1Offset()
871 Zero, Addr.getOperand(1)); in SelectDS1Addr1Offset()
880 Zero, Addr.getOperand(1)); in SelectDS1Addr1Offset()
888 } else if (const ConstantSDNode *CAddr = dyn_cast<ConstantSDNode>(Addr)) { in SelectDS1Addr1Offset()
894 SDLoc DL(Addr); in SelectDS1Addr1Offset()
907 Base = Addr; in SelectDS1Addr1Offset()
908 Offset = CurDAG->getTargetConstant(0, SDLoc(Addr), MVT::i16); in SelectDS1Addr1Offset()
913 bool AMDGPUDAGToDAGISel::SelectDS64Bit4ByteAligned(SDValue Addr, SDValue &Base, in SelectDS64Bit4ByteAligned() argument
916 SDLoc DL(Addr); in SelectDS64Bit4ByteAligned()
918 if (CurDAG->isBaseWithConstantOffset(Addr)) { in SelectDS64Bit4ByteAligned()
919 SDValue N0 = Addr.getOperand(0); in SelectDS64Bit4ByteAligned()
920 SDValue N1 = Addr.getOperand(1); in SelectDS64Bit4ByteAligned()
931 } else if (Addr.getOpcode() == ISD::SUB) { in SelectDS64Bit4ByteAligned()
933 if (const ConstantSDNode *C = dyn_cast<ConstantSDNode>(Addr.getOperand(0))) { in SelectDS64Bit4ByteAligned()
938 SDLoc DL(Addr); in SelectDS64Bit4ByteAligned()
945 Zero, Addr.getOperand(1)); in SelectDS64Bit4ByteAligned()
953 Zero, Addr.getOperand(1)); in SelectDS64Bit4ByteAligned()
962 } else if (const ConstantSDNode *CAddr = dyn_cast<ConstantSDNode>(Addr)) { in SelectDS64Bit4ByteAligned()
981 Base = Addr; in SelectDS64Bit4ByteAligned()
987 bool AMDGPUDAGToDAGISel::SelectMUBUF(SDValue Addr, SDValue &Ptr, in SelectMUBUF() argument
997 SDLoc DL(Addr); in SelectMUBUF()
1011 SDValue N0 = Addr; in SelectMUBUF()
1012 if (CurDAG->isBaseWithConstantOffset(Addr)) { in SelectMUBUF()
1013 C1 = cast<ConstantSDNode>(Addr.getOperand(1)); in SelectMUBUF()
1015 N0 = Addr.getOperand(0); in SelectMUBUF()
1079 bool AMDGPUDAGToDAGISel::SelectMUBUFAddr64(SDValue Addr, SDValue &SRsrc, in SelectMUBUFAddr64() argument
1089 if (!SelectMUBUF(Addr, Ptr, VAddr, SOffset, Offset, Offen, Idxen, Addr64, in SelectMUBUFAddr64()
1095 SDLoc DL(Addr); in SelectMUBUFAddr64()
1107 bool AMDGPUDAGToDAGISel::SelectMUBUFAddr64(SDValue Addr, SDValue &SRsrc, in SelectMUBUFAddr64() argument
1111 SLC = CurDAG->getTargetConstant(0, SDLoc(Addr), MVT::i1); in SelectMUBUFAddr64()
1114 return SelectMUBUFAddr64(Addr, SRsrc, VAddr, SOffset, Offset, GLC, SLC, TFE); in SelectMUBUFAddr64()
1143 SDValue Addr, SDValue &Rsrc, in SelectMUBUFScratchOffen() argument
1147 SDLoc DL(Addr); in SelectMUBUFScratchOffen()
1153 if (ConstantSDNode *CAddr = dyn_cast<ConstantSDNode>(Addr)) { in SelectMUBUFScratchOffen()
1172 if (CurDAG->isBaseWithConstantOffset(Addr)) { in SelectMUBUFScratchOffen()
1175 SDValue N0 = Addr.getOperand(0); in SelectMUBUFScratchOffen()
1176 SDValue N1 = Addr.getOperand(1); in SelectMUBUFScratchOffen()
1204 std::tie(VAddr, SOffset) = foldFrameIndex(Addr); in SelectMUBUFScratchOffen()
1210 SDValue Addr, in SelectMUBUFScratchOffset() argument
1214 ConstantSDNode *CAddr = dyn_cast<ConstantSDNode>(Addr); in SelectMUBUFScratchOffset()
1218 SDLoc DL(Addr); in SelectMUBUFScratchOffset()
1236 bool AMDGPUDAGToDAGISel::SelectMUBUFOffset(SDValue Addr, SDValue &SRsrc, in SelectMUBUFOffset() argument
1244 if (!SelectMUBUF(Addr, Ptr, VAddr, SOffset, Offset, Offen, Idxen, Addr64, in SelectMUBUFOffset()
1253 SDLoc DL(Addr); in SelectMUBUFOffset()
1264 bool AMDGPUDAGToDAGISel::SelectMUBUFOffset(SDValue Addr, SDValue &SRsrc, in SelectMUBUFOffset() argument
1269 return SelectMUBUFOffset(Addr, SRsrc, Soffset, Offset, GLC, SLC, TFE); in SelectMUBUFOffset()
1271 bool AMDGPUDAGToDAGISel::SelectMUBUFOffset(SDValue Addr, SDValue &SRsrc, in SelectMUBUFOffset() argument
1276 return SelectMUBUFOffset(Addr, SRsrc, Soffset, Offset, GLC, SLC, TFE); in SelectMUBUFOffset()
1280 bool AMDGPUDAGToDAGISel::SelectFlatOffset(SDValue Addr, in SelectFlatOffset() argument
1287 CurDAG->isBaseWithConstantOffset(Addr)) { in SelectFlatOffset()
1288 SDValue N0 = Addr.getOperand(0); in SelectFlatOffset()
1289 SDValue N1 = Addr.getOperand(1); in SelectFlatOffset()
1294 Addr = N0; in SelectFlatOffset()
1299 VAddr = Addr; in SelectFlatOffset()
1306 bool AMDGPUDAGToDAGISel::SelectFlatAtomic(SDValue Addr, in SelectFlatAtomic() argument
1310 return SelectFlatOffset<false>(Addr, VAddr, Offset, SLC); in SelectFlatAtomic()
1313 bool AMDGPUDAGToDAGISel::SelectFlatAtomicSigned(SDValue Addr, in SelectFlatAtomicSigned() argument
1317 return SelectFlatOffset<true>(Addr, VAddr, Offset, SLC); in SelectFlatAtomicSigned()
1354 SDValue AMDGPUDAGToDAGISel::Expand32BitAddress(SDValue Addr) const { in Expand32BitAddress()
1355 if (Addr.getValueType() != MVT::i32) in Expand32BitAddress()
1356 return Addr; in Expand32BitAddress()
1359 SDLoc SL(Addr); in Expand32BitAddress()
1368 Addr, in Expand32BitAddress()
1379 bool AMDGPUDAGToDAGISel::SelectSMRD(SDValue Addr, SDValue &SBase, in SelectSMRD() argument
1381 SDLoc SL(Addr); in SelectSMRD()
1385 if ((Addr.getValueType() != MVT::i32 || in SelectSMRD()
1386 Addr->getFlags().hasNoUnsignedWrap()) && in SelectSMRD()
1387 CurDAG->isBaseWithConstantOffset(Addr)) { in SelectSMRD()
1388 SDValue N0 = Addr.getOperand(0); in SelectSMRD()
1389 SDValue N1 = Addr.getOperand(1); in SelectSMRD()
1396 SBase = Expand32BitAddress(Addr); in SelectSMRD()
1402 bool AMDGPUDAGToDAGISel::SelectSMRDImm(SDValue Addr, SDValue &SBase, in SelectSMRDImm() argument
1405 return SelectSMRD(Addr, SBase, Offset, Imm) && Imm; in SelectSMRDImm()
1408 bool AMDGPUDAGToDAGISel::SelectSMRDImm32(SDValue Addr, SDValue &SBase, in SelectSMRDImm32() argument
1415 if (!SelectSMRD(Addr, SBase, Offset, Imm)) in SelectSMRDImm32()
1421 bool AMDGPUDAGToDAGISel::SelectSMRDSgpr(SDValue Addr, SDValue &SBase, in SelectSMRDSgpr() argument
1424 return SelectSMRD(Addr, SBase, Offset, Imm) && !Imm && in SelectSMRDSgpr()
1428 bool AMDGPUDAGToDAGISel::SelectSMRDBufferImm(SDValue Addr, in SelectSMRDBufferImm() argument
1431 return SelectSMRDOffset(Addr, Offset, Imm) && Imm; in SelectSMRDBufferImm()
1434 bool AMDGPUDAGToDAGISel::SelectSMRDBufferImm32(SDValue Addr, in SelectSMRDBufferImm32() argument
1440 if (!SelectSMRDOffset(Addr, Offset, Imm)) in SelectSMRDBufferImm32()
2167 bool R600DAGToDAGISel::SelectGlobalValueConstantOffset(SDValue Addr, in SelectGlobalValueConstantOffset() argument
2169 if (ConstantSDNode *Cst = dyn_cast<ConstantSDNode>(Addr)) { in SelectGlobalValueConstantOffset()
2170 IntPtr = CurDAG->getIntPtrConstant(Cst->getZExtValue() / 4, SDLoc(Addr), in SelectGlobalValueConstantOffset()
2177 bool R600DAGToDAGISel::SelectGlobalValueVariableOffset(SDValue Addr, in SelectGlobalValueVariableOffset() argument
2179 if (!isa<ConstantSDNode>(Addr)) { in SelectGlobalValueVariableOffset()
2180 BaseReg = Addr; in SelectGlobalValueVariableOffset()
2181 Offset = CurDAG->getIntPtrConstant(0, SDLoc(Addr), true); in SelectGlobalValueVariableOffset()
2224 bool R600DAGToDAGISel::SelectADDRIndirect(SDValue Addr, SDValue &Base, in SelectADDRIndirect() argument
2227 SDLoc DL(Addr); in SelectADDRIndirect()
2229 if ((C = dyn_cast<ConstantSDNode>(Addr))) { in SelectADDRIndirect()
2232 } else if ((Addr.getOpcode() == AMDGPUISD::DWORDADDR) && in SelectADDRIndirect()
2233 (C = dyn_cast<ConstantSDNode>(Addr.getOperand(0)))) { in SelectADDRIndirect()
2236 } else if ((Addr.getOpcode() == ISD::ADD || Addr.getOpcode() == ISD::OR) && in SelectADDRIndirect()
2237 (C = dyn_cast<ConstantSDNode>(Addr.getOperand(1)))) { in SelectADDRIndirect()
2238 Base = Addr.getOperand(0); in SelectADDRIndirect()
2241 Base = Addr; in SelectADDRIndirect()
2248 bool R600DAGToDAGISel::SelectADDRVTX_READ(SDValue Addr, SDValue &Base, in SelectADDRVTX_READ() argument
2252 if (Addr.getOpcode() == ISD::ADD in SelectADDRVTX_READ()
2253 && (IMMOffset = dyn_cast<ConstantSDNode>(Addr.getOperand(1))) in SelectADDRVTX_READ()
2256 Base = Addr.getOperand(0); in SelectADDRVTX_READ()
2257 Offset = CurDAG->getTargetConstant(IMMOffset->getZExtValue(), SDLoc(Addr), in SelectADDRVTX_READ()
2261 } else if ((IMMOffset = dyn_cast<ConstantSDNode>(Addr)) in SelectADDRVTX_READ()
2266 Offset = CurDAG->getTargetConstant(IMMOffset->getZExtValue(), SDLoc(Addr), in SelectADDRVTX_READ()
2272 Base = Addr; in SelectADDRVTX_READ()
2273 Offset = CurDAG->getTargetConstant(0, SDLoc(Addr), MVT::i32); in SelectADDRVTX_READ()