File tree Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -766,15 +766,21 @@ static char getTypeSuffix(Type *T) {
766
766
}
767
767
768
768
void SPIRVToOCLBase::mutateArgsForImageOperands (std::vector<Value *> &Args) {
769
- if (Args.size () > 4 ) {
769
+ if (Args.size () > 3 ) {
770
770
ConstantInt *ImOp = dyn_cast<ConstantInt>(Args[3 ]);
771
- ConstantFP *LodVal = dyn_cast<ConstantFP>(Args[4 ]);
771
+ uint64_t ImOpValue = 0 ;
772
+ if (ImOp)
773
+ ImOpValue = ImOp->getZExtValue ();
772
774
// Drop "Image Operands" argument.
773
775
Args.erase (Args.begin () + 3 , Args.begin () + 4 );
774
- // If the image operand is LOD and its value is zero, drop it too.
775
- if (ImOp && LodVal && LodVal->isNullValue () &&
776
- ImOp->getZExtValue () == ImageOperandsMask::ImageOperandsLodMask)
777
- Args.erase (Args.begin () + 3 , Args.end ());
776
+
777
+ if (Args.size () > 3 ) {
778
+ ConstantFP *LodVal = dyn_cast<ConstantFP>(Args[3 ]);
779
+ // If the image operand is LOD and its value is zero, drop it too.
780
+ if (LodVal && LodVal->isNullValue () &&
781
+ ImOpValue == ImageOperandsMask::ImageOperandsLodMask)
782
+ Args.erase (Args.begin () + 3 , Args.end ());
783
+ }
778
784
}
779
785
}
780
786
You can’t perform that action at this time.
0 commit comments