Changeset View
Changeset View
Standalone View
Standalone View
lib/Target/AMDGPU/AMDGPUISelLowering.cpp
Show First 20 Lines • Show All 429 Lines • ▼ Show 20 Lines | AMDGPUTargetLowering::AMDGPUTargetLowering(const TargetMachine &TM, | ||||
// bit operations. This is in general better, but the alternative using BFI | // bit operations. This is in general better, but the alternative using BFI | ||||
// instructions may be better if the select sources are SGPRs. | // instructions may be better if the select sources are SGPRs. | ||||
setOperationAction(ISD::SELECT, MVT::v2f32, Promote); | setOperationAction(ISD::SELECT, MVT::v2f32, Promote); | ||||
AddPromotedToType(ISD::SELECT, MVT::v2f32, MVT::v2i32); | AddPromotedToType(ISD::SELECT, MVT::v2f32, MVT::v2i32); | ||||
setOperationAction(ISD::SELECT, MVT::v4f32, Promote); | setOperationAction(ISD::SELECT, MVT::v4f32, Promote); | ||||
AddPromotedToType(ISD::SELECT, MVT::v4f32, MVT::v4i32); | AddPromotedToType(ISD::SELECT, MVT::v4f32, MVT::v4i32); | ||||
// There are no libcalls of any kind. | |||||
for (int I = 0; I < RTLIB::UNKNOWN_LIBCALL; ++I) | |||||
setLibcallName(static_cast<RTLIB::Libcall>(I), nullptr); | |||||
setBooleanContents(ZeroOrNegativeOneBooleanContent); | setBooleanContents(ZeroOrNegativeOneBooleanContent); | ||||
setBooleanVectorContents(ZeroOrNegativeOneBooleanContent); | setBooleanVectorContents(ZeroOrNegativeOneBooleanContent); | ||||
setSchedulingPreference(Sched::RegPressure); | setSchedulingPreference(Sched::RegPressure); | ||||
setJumpIsExpensive(true); | setJumpIsExpensive(true); | ||||
setHasMultipleConditionRegisters(true); | setHasMultipleConditionRegisters(true); | ||||
// SI at least has hardware support for floating point exceptions, but no way | // SI at least has hardware support for floating point exceptions, but no way | ||||
▲ Show 20 Lines • Show All 2,703 Lines • Show Last 20 Lines |