@@ -13483,15 +13483,15 @@ void Optimizer::applyBarrierWA(INST_LIST_ITER it, G4_BB *bb) {
13483
13483
auto labelInst = builder.createLabelInst (label, false );
13484
13484
bb->insertBefore (it, labelInst);
13485
13485
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
13487
13487
G4_DstRegRegion *nullDst = builder.createNullDst (Type_UD);
13488
- G4_SrcRegRegion *src0Cmp = builder.createSrc (
13488
+ G4_SrcRegRegion *src0And = builder.createSrc (
13489
13489
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 ,
13493
13493
builder.createImm (0x1 , Type_UD), InstOpt_WriteEnable);
13494
- bb->insertBefore (it, cmpInst );
13494
+ bb->insertBefore (it, andInst );
13495
13495
13496
13496
// (W&f0.0) while(1) loop
13497
13497
G4_Predicate *pred = builder.createPredicate (PredState_Plus, WAFlagVar, 0 );
@@ -13573,16 +13573,16 @@ void Optimizer::applyNamedBarrierWA(INST_LIST_ITER it, G4_BB *bb) {
13573
13573
auto labelInst = builder.createLabelInst (label, false );
13574
13574
bb->insertBefore (it, labelInst);
13575
13575
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
13577
13577
G4_DstRegRegion *nullDst = builder.createNullDst (Type_UD);
13578
- G4_SrcRegRegion *src0Cmp = builder.createSrc (
13578
+ G4_SrcRegRegion *src0And = builder.createSrc (
13579
13579
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 );
13586
13586
13587
13587
// (W&f0.0) while(1) loop
13588
13588
G4_Predicate *pred = builder.createPredicate (PredState_Plus, WAFlagVar, 0 );
0 commit comments