@@ -713,16 +713,10 @@ int IR_Builder::translateVISAArithmeticDoubleInst(ISA_Opcode opcode, Common_ISA_
713
713
G4_CondMod *condModOverflow = createCondMod (Mod_o, tmpFlag->getRegVar (), 0 );
714
714
inst->setCondMod (condModOverflow);
715
715
716
- bool generateIf = true;
717
-
718
- if (generateIf)
719
716
{
720
717
// if
721
718
G4_Predicate *predicateFlagReg = createPredicate (PredState_Minus, tmpFlag->getRegVar (), 0 , predCtrlValue);
722
719
inst = createIf (predicateFlagReg, exsize, instOpt);
723
- }
724
- {
725
-
726
720
727
721
// madm (4) r9.acc3 r0.noacc r6.noacc r8.acc2 {Align16, N1/N2}
728
722
G4_SrcRegRegion *t0SrcOpnd = createSrcRegRegion (tsrc0);
@@ -815,24 +809,23 @@ int IR_Builder::translateVISAArithmeticDoubleInst(ISA_Opcode opcode, Common_ISA_
815
809
t12SrcOpnd1->setAccRegSel (ACC2);
816
810
inst = createInst (NULL , G4_madm, NULL , false , exsize, t8DstOpnd2, t9SrcOpnd1x1,
817
811
t11SrcOpnd1, t12SrcOpnd1, madmInstOpt, line_no);
818
- }
819
812
820
- if (generateIf && !hasDefaultRoundDenorm)
821
- {
822
- // else (8) {Q1/Q2}
823
- inst = createElse(exsize, instOpt);
813
+ if ( !hasDefaultRoundDenorm)
814
+ {
815
+ // else (8) {Q1/Q2}
816
+ inst = createElse (exsize, instOpt);
824
817
825
- // restore cr0.0 {NoMask}
826
- G4_DstRegRegion *cr0DstRegOpndForRestoreElseInst = createDstRegRegion(regDstCR0);
827
- auto tmpSrcOpndForCR0OnElse = Create_Src_Opnd_From_Dcl(regCR0, getRegionScalar());
828
- inst = createInst(NULL, G4_mov, NULL, false, 1, cr0DstRegOpndForRestoreElseInst, tmpSrcOpndForCR0OnElse,
829
- NULL, InstOpt_WriteEnable, line_no);
830
- }
818
+ // restore cr0.0 {NoMask}
819
+ G4_DstRegRegion *cr0DstRegOpndForRestoreElseInst = createDstRegRegion (regDstCR0);
820
+ auto tmpSrcOpndForCR0OnElse = Create_Src_Opnd_From_Dcl (regCR0, getRegionScalar ());
821
+ inst = createInst (NULL , G4_mov, NULL , false , 1 , cr0DstRegOpndForRestoreElseInst, tmpSrcOpndForCR0OnElse,
822
+ NULL , InstOpt_WriteEnable, line_no);
823
+ }
831
824
832
- if (generateIf)
833
- {
834
- // endif (8) {Q1/Q2}
835
- inst = createEndif(exsize, instOpt);
825
+ {
826
+ // endif (8) {Q1/Q2}
827
+ inst = createEndif (exsize, instOpt);
828
+ }
836
829
}
837
830
}; // for loop
838
831
@@ -1613,24 +1606,18 @@ int IR_Builder::translateVISAArithmeticDoubleSQRTInst(ISA_Opcode opcode, Common_
1613
1606
inst = createMathInst (NULL , false , exsize, dst0, src0, src1, MATH_RSQRTM, madmInstOpt, line_no);
1614
1607
inst->setCondMod (condModOverflow);
1615
1608
1616
- bool generateIf = true;
1617
-
1618
- if (generateIf)
1619
1609
{
1620
1610
// if
1621
1611
G4_Predicate *predicateFlagReg = createPredicate (PredState_Minus, flagReg->getRegVar (), 0 , predCtrlValue);
1622
1612
inst = createIf (predicateFlagReg, exsize, instOpt);
1623
- }
1624
1613
1625
- {
1626
1614
// madm (4) r9.acc3 r0.noacc r2(r8).noacc r7.acc2 {Align16, N1/N2}
1627
1615
dst0 = createDstRegRegion (tdst9); dst0->setAccRegSel (ACC3);
1628
1616
src0 = createSrcRegRegion (csrc0); src0->setAccRegSel (NOACC);
1629
1617
src1 = createSrcRegRegion (csrc2); src1->setAccRegSel (NOACC);
1630
1618
src2 = createSrcRegRegion (tsrc7); src2->setAccRegSel (ACC2);
1631
1619
inst = createInst (NULL , G4_madm, NULL , false , exsize, dst0, src0, src1, src2, madmInstOpt, line_no);
1632
1620
1633
-
1634
1621
// madm (4) r11.acc4 r0.noacc r6.noacc r7.acc2 {Align16, N1/N2}
1635
1622
dst0 = createDstRegRegion (tdst11); dst0->setAccRegSel (ACC4);
1636
1623
src0 = createSrcRegRegion (csrc0); src0->setAccRegSel (NOACC);
@@ -1646,7 +1633,6 @@ int IR_Builder::translateVISAArithmeticDoubleSQRTInst(ISA_Opcode opcode, Common_
1646
1633
src2 = createSrcRegRegion (tsrc7); src2->setAccRegSel (ACC2);
1647
1634
inst = createInst (NULL , G4_madm, NULL , false , exsize, dst0, src0, src1, src2, madmInstOpt, line_no);
1648
1635
1649
-
1650
1636
// madm (4) r10.acc5 r2(r8).noacc -r11.acc4 r9.acc3 {Align16, N1/N2}
1651
1637
dst0 = createDstRegRegion (tdst10); dst0->setAccRegSel (ACC5);
1652
1638
src0 = createSrcRegRegion (csrc2); src0->setAccRegSel (NOACC);
@@ -1663,55 +1649,48 @@ int IR_Builder::translateVISAArithmeticDoubleSQRTInst(ISA_Opcode opcode, Common_
1663
1649
neg_src1->setAccRegSel (src1->getAccRegSel ());
1664
1650
inst = createInst (NULL , G4_madm, NULL , false , exsize, dst0, src0, neg_src1, src2, madmInstOpt, line_no);
1665
1651
1666
-
1667
1652
// madm (4) r8.acc6 r1.noacc r2(r8).noacc r1.noacc {Align16, N1/N2}
1668
1653
dst0 = createDstRegRegion (tdst8); dst0->setAccRegSel (ACC6);
1669
1654
src0 = createSrcRegRegion (csrc1); src0->setAccRegSel (NOACC);
1670
1655
src1 = createSrcRegRegion (csrc2); src1->setAccRegSel (NOACC);
1671
1656
src2 = createSrcRegRegion (csrc1); src2->setAccRegSel (NOACC);
1672
1657
inst = createInst (NULL , G4_madm, NULL , false , exsize, dst0, src0, src1, src2, madmInstOpt, line_no);
1673
1658
1674
-
1675
1659
// madm (4) r8.acc7 r1.noacc r8.acc6 r10.acc5 {Align16, N1/N2}
1676
1660
dst0 = createDstRegRegion (tdst8); dst0->setAccRegSel (ACC7);
1677
1661
src0 = createSrcRegRegion (csrc1); src0->setAccRegSel (NOACC);
1678
1662
src1 = createSrcRegRegion (tsrc8); src1->setAccRegSel (ACC6);
1679
1663
src2 = createSrcRegRegion (tsrc10); src2->setAccRegSel (ACC5);
1680
1664
inst = createInst (NULL , G4_madm, NULL , false , exsize, dst0, src0, src1, src2, madmInstOpt, line_no);
1681
1665
1682
-
1683
1666
// madm (4) r7.acc8 r0.noacc r10.acc5 r11.acc4 {Align16, N1/N2}
1684
1667
dst0 = createDstRegRegion (tdst7); dst0->setAccRegSel (ACC8);
1685
1668
src0 = createSrcRegRegion (csrc0); src0->setAccRegSel (NOACC);
1686
1669
src1 = createSrcRegRegion (tsrc10); src1->setAccRegSel (ACC5);
1687
1670
src2 = createSrcRegRegion (tsrc11); src2->setAccRegSel (ACC4);
1688
1671
inst = createInst (NULL , G4_madm, NULL , false , exsize, dst0, src0, src1, src2, madmInstOpt, line_no);
1689
1672
1690
-
1691
1673
// madm (4) r10.acc9 r0.noacc r10.acc5 r9.acc3 {Align16, N1/N2}
1692
1674
dst0 = createDstRegRegion (tdst10); dst0->setAccRegSel (ACC9);
1693
1675
src0 = createSrcRegRegion (csrc0); src0->setAccRegSel (NOACC);
1694
1676
src1 = createSrcRegRegion (tsrc10); src1->setAccRegSel (ACC5);
1695
1677
src2 = createSrcRegRegion (tsrc9); src2->setAccRegSel (ACC3);
1696
1678
inst = createInst (NULL , G4_madm, NULL , false , exsize, dst0, src0, src1, src2, madmInstOpt, line_no);
1697
1679
1698
-
1699
1680
// madm (4) r7.acc8 r11.acc4 r8.acc7 r7.acc8 {Align16, N1/N2}
1700
1681
dst0 = createDstRegRegion (tdst7); dst0->setAccRegSel (ACC8);
1701
1682
src0 = createSrcRegRegion (tsrc11); src0->setAccRegSel (ACC4);
1702
1683
src1 = createSrcRegRegion (tsrc8); src1->setAccRegSel (ACC7);
1703
1684
src2 = createSrcRegRegion (tsrc7); src2->setAccRegSel (ACC8);
1704
1685
inst = createInst (NULL , G4_madm, NULL , false , exsize, dst0, src0, src1, src2, madmInstOpt, line_no);
1705
1686
1706
-
1707
1687
// madm (4) r8.acc7 r9.acc3 r8.acc7 r10.acc9 {Align16, N1/N2}
1708
1688
dst0 = createDstRegRegion (tdst8); dst0->setAccRegSel (ACC7);
1709
1689
src0 = createSrcRegRegion (tsrc9); src0->setAccRegSel (ACC3);
1710
1690
src1 = createSrcRegRegion (tsrc8); src1->setAccRegSel (ACC7);
1711
1691
src2 = createSrcRegRegion (tsrc10); src2->setAccRegSel (ACC9);
1712
1692
inst = createInst (NULL , G4_madm, NULL , false , exsize, dst0, src0, src1, src2, madmInstOpt, line_no);
1713
1693
1714
-
1715
1694
// madm (4) r9.acc3 r6.noacc -r7.acc8 r7.acc8 {Align16, N1/N2}
1716
1695
dst0 = createDstRegRegion (tdst9); dst0->setAccRegSel (ACC3);
1717
1696
if (IsSrc0Moved)
@@ -1752,23 +1731,17 @@ int IR_Builder::translateVISAArithmeticDoubleSQRTInst(ISA_Opcode opcode, Common_
1752
1731
src2 = createSrcRegRegion (tsrc8); src2->setAccRegSel (ACC7);
1753
1732
inst = createInst (NULL , G4_madm, NULL , false , exsize, dst0, src0, src1, src2, madmInstOpt, line_no);
1754
1733
1755
- }
1756
-
1757
-
1758
- if (generateIf && !hasDefaultRoundDenorm)
1759
- {
1760
- // else (8) {Q1/Q2}
1761
- inst = createElse(exsize, instOpt);
1762
-
1763
- // restore cr0.0 {NoMask}
1764
- dst0 = createDstRegRegion(regDstCR0);
1765
- src0 = Create_Src_Opnd_From_Dcl(tmpRegCR0, getRegionScalar());
1766
- // mov (1) cr0.0<0;1,0>:ud r108.0<1>:ud {NoMask}
1767
- inst = createInst(NULL, G4_mov, NULL, false, 1, dst0, src0, NULL, InstOpt_WriteEnable, line_no);
1768
- }
1734
+ if (!hasDefaultRoundDenorm)
1735
+ {
1736
+ // else (8) {Q1/Q2}
1737
+ inst = createElse (exsize, instOpt);
1769
1738
1770
- if (generateIf)
1771
- {
1739
+ // restore cr0.0 {NoMask}
1740
+ dst0 = createDstRegRegion (regDstCR0);
1741
+ src0 = Create_Src_Opnd_From_Dcl (tmpRegCR0, getRegionScalar ());
1742
+ // mov (1) cr0.0<0;1,0>:ud r108.0<1>:ud {NoMask}
1743
+ inst = createInst (NULL , G4_mov, NULL , false , 1 , dst0, src0, NULL , InstOpt_WriteEnable, line_no);
1744
+ }
1772
1745
// endif (8) {Q1/Q2}
1773
1746
inst = createEndif (exsize, instOpt);
1774
1747
}
0 commit comments