@@ -13483,15 +13483,15 @@ void Optimizer::applyBarrierWA(INST_LIST_ITER it, G4_BB *bb) {
1348313483 auto labelInst = builder.createLabelInst (label, false );
1348413484 bb->insertBefore (it, labelInst);
1348513485
13486- // (W) cmp (1) (ne )f0.0 null:ud n0.0:ud 0x1:ud
13486+ // (W) and (1) (eq )f0.0 null:ud n0.0:ud 0x1:ud
1348713487 G4_DstRegRegion *nullDst = builder.createNullDst (Type_UD);
13488- G4_SrcRegRegion *src0Cmp = builder.createSrc (
13488+ G4_SrcRegRegion *src0And = builder.createSrc (
1348913489 builder.phyregpool .getN0Reg (), 0 , 0 , builder.getRegionScalar (), Type_UD);
13490- G4_CondMod *condMod = builder.createCondMod (Mod_ne , WAFlagVar, 0 );
13491- auto cmpInst = builder.createInternalInst (
13492- nullptr , G4_cmp , condMod, g4::NOSAT, g4::SIMD1, nullDst, src0Cmp ,
13490+ G4_CondMod *condMod = builder.createCondMod (Mod_e , WAFlagVar, 0 );
13491+ auto andInst = builder.createInternalInst (
13492+ nullptr , G4_and , condMod, g4::NOSAT, g4::SIMD1, nullDst, src0And ,
1349313493 builder.createImm (0x1 , Type_UD), InstOpt_WriteEnable);
13494- bb->insertBefore (it, cmpInst );
13494+ bb->insertBefore (it, andInst );
1349513495
1349613496 // (W&f0.0) while(1) loop
1349713497 G4_Predicate *pred = builder.createPredicate (PredState_Plus, WAFlagVar, 0 );
@@ -13573,16 +13573,16 @@ void Optimizer::applyNamedBarrierWA(INST_LIST_ITER it, G4_BB *bb) {
1357313573 auto labelInst = builder.createLabelInst (label, false );
1357413574 bb->insertBefore (it, labelInst);
1357513575
13576- // (W) cmp (1) (ne )f0.0 null:ud n0.0:ud dst1.1:ud
13576+ // (W) and (1) (eq )f0.0 null:ud n0.0:ud dst1.1:ud
1357713577 G4_DstRegRegion *nullDst = builder.createNullDst (Type_UD);
13578- G4_SrcRegRegion *src0Cmp = builder.createSrc (
13578+ G4_SrcRegRegion *src0And = builder.createSrc (
1357913579 builder.phyregpool .getN0Reg (), 0 , 0 , builder.getRegionScalar (), Type_UD);
13580- G4_SrcRegRegion *src1Cmp = builder.duplicateOperand (src0Shl);
13581- G4_CondMod *condMod = builder.createCondMod (Mod_ne , WAFlagVar, 0 );
13582- auto cmpInst = builder.createInternalInst (nullptr , G4_cmp , condMod, g4::NOSAT,
13583- g4::SIMD1, nullDst, src0Cmp ,
13584- src1Cmp , InstOpt_WriteEnable);
13585- bb->insertBefore (it, cmpInst );
13580+ G4_SrcRegRegion *src1And = builder.duplicateOperand (src0Shl);
13581+ G4_CondMod *condMod = builder.createCondMod (Mod_e , WAFlagVar, 0 );
13582+ auto andInst = builder.createInternalInst (nullptr , G4_and , condMod, g4::NOSAT,
13583+ g4::SIMD1, nullDst, src0And ,
13584+ src1And , InstOpt_WriteEnable);
13585+ bb->insertBefore (it, andInst );
1358613586
1358713587 // (W&f0.0) while(1) loop
1358813588 G4_Predicate *pred = builder.createPredicate (PredState_Plus, WAFlagVar, 0 );
0 commit comments