Skip to content

Commit 66db8a8

Browse files
jaladreipsigcbot
authored andcommitted
Allow VISA modifiers for indirect source operands
Allow VISA modifiers for indirect source operands
1 parent b335c25 commit 66db8a8

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

IGC/Compiler/CISACodeGen/CISABuilder.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -929,7 +929,7 @@ namespace IGC
929929
V(vKernel->CreateVISAIndirectSrcOperand(
930930
operand,
931931
var->visaAddrVariable,
932-
MODIFIER_NONE,
932+
ConvertModifierToVisaType(mod.mod),
933933
0,
934934
immOffset,
935935
vStride,
@@ -949,7 +949,7 @@ namespace IGC
949949
V(vKernel->CreateVISAIndirectSrcOperand(
950950
operand,
951951
var->visaAddrVariable,
952-
MODIFIER_NONE,
952+
ConvertModifierToVisaType(mod.mod),
953953
0,
954954
immOffset,
955955
vStride,
@@ -965,6 +965,7 @@ namespace IGC
965965
V(vKernel->CreateVISAIndirectOperandVxH(
966966
operand,
967967
var->visaAddrVariable,
968+
ConvertModifierToVisaType(mod.mod),
968969
mod.subReg,
969970
0,
970971
var->GetType()));

visa/VISAKernel.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,7 @@ class VISAKernelImpl : public VISAFunction {
304304

305305
VISA_BUILDER_API int CreateVISAIndirectOperandVxH(VISA_VectorOpnd *&cisa_opnd,
306306
VISA_AddrVar *decl,
307+
VISA_Modifier mod,
307308
unsigned int addrOffset,
308309
short immediateOffset,
309310
VISA_Type type) override;

visa/VISAKernelImpl.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1950,10 +1950,11 @@ int VISAKernelImpl::CreateVISAIndirectDstOperand(
19501950

19511951
int VISAKernelImpl::CreateVISAIndirectOperandVxH(VISA_VectorOpnd *&cisa_opnd,
19521952
VISA_AddrVar *decl,
1953+
VISA_Modifier mod,
19531954
unsigned int addrOffset,
19541955
short immediateOffset,
19551956
VISA_Type type) {
1956-
return CreateVISAIndirectGeneralOperand(cisa_opnd, decl, MODIFIER_NONE,
1957+
return CreateVISAIndirectGeneralOperand(cisa_opnd, decl, mod,
19571958
addrOffset, immediateOffset, -1, 1, 0,
19581959
type, false);
19591960
}

visa/include/VISABuilderAPIDefinition.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -222,12 +222,13 @@ class VISAKernel {
222222
VISA_Type type) = 0;
223223

224224
/// CreateVISAIndirectOperandVxH -- create a vISA indirect source operand with
225-
/// multiple addresses (r[A_N(addrOffset), immedOffset]<1,0>:type) addrOffset
226-
/// is in number of elements immedOffset is in byte and must be [-512, 511]
225+
/// multiple addresses (r[A_N(addrOffset), immedOffset]<1,0>:type) mod is the
226+
/// source modifier addrOffset is in number of elements
227+
/// immedOffset is in byte and must be [-512, 511]
227228
VISA_BUILDER_API virtual int
228229
CreateVISAIndirectOperandVxH(VISA_VectorOpnd *&cisa_opnd, VISA_AddrVar *decl,
229-
unsigned int addrOffset, short immediateOffset,
230-
VISA_Type type) = 0;
230+
VISA_Modifier mod, unsigned int addrOffset,
231+
short immediateOffset, VISA_Type type) = 0;
231232

232233
/// CreateVISAPredicateOperand -- create a vISA predicate operand that can be
233234
/// used for predicated execution

0 commit comments

Comments
 (0)