================
@@ -338,13 +336,36 @@ SPIRVGlobalRegistry::getOpTypeVector(uint32_t NumElems,
SPIRVTypeInst ElemType,
return createConstOrTypeAtFunctionEntry(
MIRBuilder, [&](MachineIRBuilder &MIRBuilder) {
- return MIRBuilder.buildInstr(SPIRV::OpTypeVector)
- .addDef(createTypeVReg(MIRBuilder))
- .addUse(getSPIRVTypeID(ElemType))
- .addImm(NumElems);
+ unsigned Op =
+ IsLongVectorEXT ? SPIRV::OpTypeVectorIdEXT : SPIRV::OpTypeVector;
+ Register VTy = createTypeVReg(MIRBuilder);
+ Register Ty = getSPIRVTypeID(ElemType);
+ auto &MIB = MIRBuilder.buildInstr(Op).addDef(VTy).addUse(Ty);
----------------
mikaelholmen wrote:
I see crashes in 445 SPIRV tests with this patch if I compile with gcc and
_FORTIFY_SOURCE.
Those crashes seem to go away if changing this line to
```
auto MIB = MIRBuilder.buildInstr(Op).addDef(VTy).addUse(Ty);
```
instead.
https://github.com/llvm/llvm-project/pull/210279
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits