Skip to content

Commit aa9ccf0

Browse files
mshelegoigcbot
authored andcommitted
Prevent creation of scalable vectors in internal intrinsics
To create a vector IITDescriptor::getVector() should be called with isScalable arg explicitly set to false
1 parent 19146c2 commit aa9ccf0

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

IGC/VectorCompiler/lib/InternalIntrinsics/InternalIntrinsics.cpp

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,15 @@ enum IIT_Info {
115115
#include "vc/InternalIntrinsics/InternalIntrinsicDescription.gen"
116116
#undef GET_INTRINSIC_GENERATOR_GLOBAL
117117

118+
static Intrinsic::IITDescriptor getVector(unsigned Width) {
119+
using namespace Intrinsic;
120+
#if VC_INTR_LLVM_VERSION_MAJOR >= 11
121+
return IITDescriptor::getVector(Width, false);
122+
#else
123+
return IITDescriptor::get(IITDescriptor::Vector, Width);
124+
#endif
125+
}
126+
118127
static void
119128
DecodeIITType(unsigned &NextElt, ArrayRef<unsigned char> Infos,
120129
SmallVectorImpl<Intrinsic::IITDescriptor> &OutputTable) {
@@ -170,39 +179,39 @@ DecodeIITType(unsigned &NextElt, ArrayRef<unsigned char> Infos,
170179
OutputTable.push_back(IITDescriptor::get(IITDescriptor::Integer, 128));
171180
return;
172181
case IIT_V1:
173-
OutputTable.push_back(IITDescriptor::get(IITDescriptor::Vector, 1));
182+
OutputTable.push_back(getVector(1));
174183
DecodeIITType(NextElt, Infos, OutputTable);
175184
return;
176185
case IIT_V2:
177-
OutputTable.push_back(IITDescriptor::get(IITDescriptor::Vector, 2));
186+
OutputTable.push_back(getVector(2));
178187
DecodeIITType(NextElt, Infos, OutputTable);
179188
return;
180189
case IIT_V4:
181-
OutputTable.push_back(IITDescriptor::get(IITDescriptor::Vector, 4));
190+
OutputTable.push_back(getVector(4));
182191
DecodeIITType(NextElt, Infos, OutputTable);
183192
return;
184193
case IIT_V8:
185-
OutputTable.push_back(IITDescriptor::get(IITDescriptor::Vector, 8));
194+
OutputTable.push_back(getVector(8));
186195
DecodeIITType(NextElt, Infos, OutputTable);
187196
return;
188197
case IIT_V16:
189-
OutputTable.push_back(IITDescriptor::get(IITDescriptor::Vector, 16));
198+
OutputTable.push_back(getVector(16));
190199
DecodeIITType(NextElt, Infos, OutputTable);
191200
return;
192201
case IIT_V32:
193-
OutputTable.push_back(IITDescriptor::get(IITDescriptor::Vector, 32));
202+
OutputTable.push_back(getVector(32));
194203
DecodeIITType(NextElt, Infos, OutputTable);
195204
return;
196205
case IIT_V64:
197-
OutputTable.push_back(IITDescriptor::get(IITDescriptor::Vector, 64));
206+
OutputTable.push_back(getVector(64));
198207
DecodeIITType(NextElt, Infos, OutputTable);
199208
return;
200209
case IIT_V512:
201-
OutputTable.push_back(IITDescriptor::get(IITDescriptor::Vector, 512));
210+
OutputTable.push_back(getVector(512));
202211
DecodeIITType(NextElt, Infos, OutputTable);
203212
return;
204213
case IIT_V1024:
205-
OutputTable.push_back(IITDescriptor::get(IITDescriptor::Vector, 1024));
214+
OutputTable.push_back(getVector(1024));
206215
DecodeIITType(NextElt, Infos, OutputTable);
207216
return;
208217
case IIT_PTR:

0 commit comments

Comments
 (0)