Changeset 4030 in CLRX


Ignore:
Timestamp:
Apr 20, 2018, 9:46:12 AM (5 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Wrong index of the RVU while getting single regvar linear deps.
Add instruction with linear deps in two RVU's to last testcase.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/amdasm/AsmRegAlloc.cpp

    r4028 r4030  
    904904            std::vector<size_t> vidxes;
    905905            cxuint regType = UINT_MAX;
    906             cxbyte align = rvus[ldeps[pos]].align;
     906            cxbyte align = rvus[i].align;
    907907            for (uint16_t k = rvu.rstart; k < rvu.rend; k++)
    908908            {
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAlloc3.cpp

    r4029 r4030  
    115115    {   // 2 - simple case (linear dep)
    116116        R"ffDXD(.regvar sa:s:8, va:v:10
     117        .regvar sbuf:s:4, rbx4:v:6
    117118        s_mov_b64 sa[4:5], sa[2:3]  # 0
    118119        s_and_b64 sa[4:5], sa[4:5], s[4:5]
    119120        v_add_f64 va[4:5], va[2:3], v[3:4]
     121        buffer_load_dwordx4 rbx4[1:5], va[6], sbuf[0:3], sa[7] idxen offset:603 tfe
    120122)ffDXD",
    121123        {   // livenesses
     
    128130                { { 8, 9 } }, // sa[4]'1
    129131                { { 4, 5 } }, // sa[5]'0
    130                 { { 8, 9 } }  // sa[4]'1
     132                { { 8, 9 } }, // sa[5]'1
     133                { { 0, 17 } }, // sa[7]'0
     134                { { 0, 17 } }, // sbuf[0]'0
     135                { { 0, 17 } }, // sbuf[1]'0
     136                { { 0, 17 } }, // sbuf[2]'0
     137                { { 0, 17 } }, // sbuf[3]'0
    131138            },
    132139            {   // for VGPRs
    133140                { { 0, 9 } }, // V3
    134141                { { 0, 9 } }, // V4
     142                { }, // rbx4[1]'0
     143                { }, // rbx4[2]'0
     144                { }, // rbx4[3]'0
     145                { }, // rbx4[4]'0
     146                { { 0, 17 } }, // rbx4[5]'0: tfe - read before write
    135147                { { 0, 9 } }, // va[2]'0
    136148                { { 0, 9 } }, // va[3]'0
    137                 { }, // va[4]'0 : out of range code block
    138                 { }  // va[5]'0 : out of range code block
     149                { { 16, 17 } }, // va[4]'0 : out of range code block
     150                { { 16, 17 } }, // va[5]'0 : out of range code block
     151                { { 0, 17 } } // va[6]'0
    139152            },
    140153            { },
     
    143156        {   // linearDepMaps
    144157            {   // for SGPRs
    145                 { 0, { 2, { }, { 1 } } },  // S4
     158                { 0, { 0, { }, { 1 } } },  // S4
    146159                { 1, { 0, { 0 }, { } } },  // S5
    147160                { 2, { 2, { }, { 3 } } },  // sa[2]'0
     
    150163                { 5, { 2, { }, { 7, 7 } } },  // sa[4]'1
    151164                { 6, { 0, { 4 }, { } } },  // sa[5]'0
    152                 { 7, { 0, { 5, 5 }, { } } }   // sa[5]'1
     165                { 7, { 0, { 5, 5 }, { } } },   // sa[5]'1
     166                { 9, { 4, { }, { 10 } } }, // sbuf[0]'0
     167                { 10, { 0, { 9 }, { 11 } } }, // sbuf[1]'0
     168                { 11, { 0, { 10 }, { 12 } } }, // sbuf[2]'0
     169                { 12, { 0, { 11 }, { } } }  // sbuf[3]'0
    153170            },
    154171            {   // for VGPRs
    155                 { 0, { 1, { }, { 1 } } },  // V3
     172                { 0, { 0, { }, { 1 } } },  // V3
    156173                { 1, { 0, { 0 }, { } } },  // V4
    157                 { 2, { 1, { }, { 3 } } },  // va[2]'0
    158                 { 3, { 0, { 2 }, { } } },  // va[3]'0
    159                 { 4, { 1, { }, { 5 } } },  // va[4]'0
    160                 { 5, { 0, { 4 }, { } } },  // va[5]'0
     174                { 2, { 1, { }, { 3 } } }, // rbx4[1]'0
     175                { 3, { 0, { 2 }, { 4 } } }, // rbx4[2]'0
     176                { 4, { 0, { 3 }, { 5 } } }, // rbx4[3]'0
     177                { 5, { 0, { 4 }, { 6 } } }, // rbx4[4]'0
     178                { 6, { 0, { 5 }, { } } }, // rbx4[5]'0
     179                { 7, { 1, { }, { 8 } } },  // va[2]'0
     180                { 8, { 0, { 7 }, { } } },  // va[3]'0
     181                { 9, { 1, { }, { 10 } } },  // va[4]'0
     182                { 10, { 0, { 9 }, { } } }  // va[5]'0
    161183            },
    162184            { },
     
    165187        { },  // equalToDepMaps
    166188        true, ""
    167     },
     189    }
    168190};
    169191
Note: See TracChangeset for help on using the changeset viewer.