@@ -1100,15 +1100,15 @@ bool SPIRVInstructionSelector::selectAtomicRMW(Register ResVReg,
11001100 ValueReg = TmpReg;
11011101 }
11021102
1103- Result &= BuildMI (*I. getParent (), I, I. getDebugLoc (), TII. get (NewOpcode))
1104- . addDef (ResVReg )
1105- . addUse (GR. getSPIRVTypeID (ResType) )
1106- .addUse (Ptr )
1107- .addUse (ScopeReg )
1108- .addUse (MemSemReg )
1109- .addUse (ValueReg )
1110- . constrainAllUses (TII, TRI, RBI);
1111- return Result ;
1103+ return Result &&
1104+ BuildMI (*I. getParent (), I, I. getDebugLoc (), TII. get (NewOpcode) )
1105+ . addDef (ResVReg )
1106+ .addUse (GR. getSPIRVTypeID (ResType) )
1107+ .addUse (Ptr )
1108+ .addUse (ScopeReg )
1109+ .addUse (MemSemReg )
1110+ . addUse (ValueReg)
1111+ . constrainAllUses (TII, TRI, RBI) ;
11121112}
11131113
11141114bool SPIRVInstructionSelector::selectUnmergeValues (MachineInstr &I) const {
@@ -1222,13 +1222,12 @@ bool SPIRVInstructionSelector::selectOverflowArith(Register ResVReg,
12221222 Result &= MIB.constrainAllUses (TII, TRI, RBI);
12231223 }
12241224 // Build boolean value from the higher part.
1225- Result &= BuildMI (BB, I, I.getDebugLoc (), TII.get (SPIRV::OpINotEqual))
1226- .addDef (I.getOperand (1 ).getReg ())
1227- .addUse (BoolTypeReg)
1228- .addUse (HigherVReg)
1229- .addUse (ZeroReg)
1230- .constrainAllUses (TII, TRI, RBI);
1231- return Result;
1225+ return Result && BuildMI (BB, I, I.getDebugLoc (), TII.get (SPIRV::OpINotEqual))
1226+ .addDef (I.getOperand (1 ).getReg ())
1227+ .addUse (BoolTypeReg)
1228+ .addUse (HigherVReg)
1229+ .addUse (ZeroReg)
1230+ .constrainAllUses (TII, TRI, RBI);
12321231}
12331232
12341233bool SPIRVInstructionSelector::selectAtomicCmpXchg (Register ResVReg,
@@ -1302,14 +1301,14 @@ bool SPIRVInstructionSelector::selectAtomicCmpXchg(Register ResVReg,
13021301 .addUse (GR.getOrCreateUndef (I, ResType, TII))
13031302 .addImm (0 )
13041303 .constrainAllUses (TII, TRI, RBI);
1305- Result &= BuildMI (*I. getParent (), I, DL, TII. get (SPIRV::OpCompositeInsert))
1306- . addDef (ResVReg )
1307- . addUse (GR. getSPIRVTypeID (ResType) )
1308- .addUse (CmpSuccReg )
1309- .addUse (TmpReg )
1310- . addImm ( 1 )
1311- . constrainAllUses (TII, TRI, RBI);
1312- return Result ;
1304+ return Result &&
1305+ BuildMI (*I. getParent (), I, DL, TII. get (SPIRV::OpCompositeInsert) )
1306+ . addDef (ResVReg )
1307+ .addUse (GR. getSPIRVTypeID (ResType) )
1308+ .addUse (CmpSuccReg )
1309+ . addUse (TmpReg )
1310+ . addImm ( 1 )
1311+ . constrainAllUses (TII, TRI, RBI) ;
13131312}
13141313
13151314static bool isGenericCastablePtr (SPIRV::StorageClass::StorageClass SC) {
@@ -1787,14 +1786,12 @@ bool SPIRVInstructionSelector::selectDot4AddPacked(Register ResVReg,
17871786 .addUse (I.getOperand (3 ).getReg ())
17881787 .constrainAllUses (TII, TRI, RBI);
17891788
1790- Result &= BuildMI (BB, I, I.getDebugLoc (), TII.get (SPIRV::OpIAddS))
1791- .addDef (ResVReg)
1792- .addUse (GR.getSPIRVTypeID (ResType))
1793- .addUse (Dot)
1794- .addUse (I.getOperand (4 ).getReg ())
1795- .constrainAllUses (TII, TRI, RBI);
1796-
1797- return Result;
1789+ return Result && BuildMI (BB, I, I.getDebugLoc (), TII.get (SPIRV::OpIAddS))
1790+ .addDef (ResVReg)
1791+ .addUse (GR.getSPIRVTypeID (ResType))
1792+ .addUse (Dot)
1793+ .addUse (I.getOperand (4 ).getReg ())
1794+ .constrainAllUses (TII, TRI, RBI);
17981795}
17991796
18001797// Since pre-1.6 SPIRV has no DotProductInput4x8BitPacked implementation,
@@ -3277,14 +3274,12 @@ bool SPIRVInstructionSelector::selectLog10(Register ResVReg,
32773274 auto Opcode = ResType->getOpcode () == SPIRV::OpTypeVector
32783275 ? SPIRV::OpVectorTimesScalar
32793276 : SPIRV::OpFMulS;
3280- Result &= BuildMI (BB, I, I.getDebugLoc (), TII.get (Opcode))
3281- .addDef (ResVReg)
3282- .addUse (GR.getSPIRVTypeID (ResType))
3283- .addUse (VarReg)
3284- .addUse (ScaleReg)
3285- .constrainAllUses (TII, TRI, RBI);
3286-
3287- return Result;
3277+ return Result && BuildMI (BB, I, I.getDebugLoc (), TII.get (Opcode))
3278+ .addDef (ResVReg)
3279+ .addUse (GR.getSPIRVTypeID (ResType))
3280+ .addUse (VarReg)
3281+ .addUse (ScaleReg)
3282+ .constrainAllUses (TII, TRI, RBI);
32883283}
32893284
32903285bool SPIRVInstructionSelector::selectSpvThreadId (Register ResVReg,
0 commit comments