================
@@ -187,12 +187,12 @@ static SPIRVTypeInst deduceTypeFromUses(Register Reg,
MachineFunction &MF,
ResType = deduceTypeFromPointerOperand(&Use, Reg, GR, MIB);
break;
case TargetOpcode::G_INTRINSIC_W_SIDE_EFFECTS:
+ case TargetOpcode::G_INTRINSIC_CONVERGENT:
case TargetOpcode::G_INTRINSIC: {
auto IntrinsicID = cast<GIntrinsic>(Use).getIntrinsicID();
- if (IntrinsicID == Intrinsic::spv_insertelt) {
- if (Reg == Use.getOperand(2).getReg())
- ResType = deduceTypeFromResultRegister(&Use, Reg, GR, MIB);
- } else if (IntrinsicID == Intrinsic::spv_extractelt) {
+ if (IntrinsicID == Intrinsic::spv_wave_readlane_first ||
+ IntrinsicID == Intrinsic::spv_insertelt ||
+ IntrinsicID == Intrinsic::spv_extractelt) {
----------------
farzonl wrote:
Hmm I dunno about how we are going about the intrinsic legalization but here
and in legalizerInfo. I see there is kind of already at least one intrinsic
there, but it feels like this is going to get unruly really quick because we
have many intrinsics in spirv that will need to support matrix types.
These are the right files I just think we may need to come up with a more
sustainable pattern. We have over 60 intrinsics we have added for HLSL in
IntrinsicsSPIRV.td if each of those 60 need matrix support this if expression
of ors is going to be crazy long and the expression will take a bit to compute.
https://github.com/llvm/llvm-project/pull/220373
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits