Changeset 4808 in CLRX


Ignore:
Timestamp:
Jul 19, 2019, 3:36:45 PM (4 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: GCNAsm: Disable Wave shifts and row broadcasts for GFX10. Fix testcases for DPP for GFX10.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

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

    r4794 r4808  
    23672367                                        "Expected ':' before ")+mod).c_str())
    23682368                    }
    2369                     else if (memcmp(mod, "wave_", 5)==0 &&
     2369                    else if ((arch & ARCH_GCN_1_5)==0 && memcmp(mod, "wave_", 5)==0 &&
    23702370                        (::strcmp(mod+5, "shl")==0 || ::strcmp(mod+5, "shr")==0 ||
    23712371                            ::strcmp(mod+5, "rol")==0 || ::strcmp(mod+5, "ror")==0))
     
    24062406                        haveDppCtrl = true;
    24072407                    }
    2408                     else if (::strncmp(mod, "row_bcast", 9)==0 && (
     2408                    else if ((arch & ARCH_GCN_1_5)==0 &&
     2409                        ::strncmp(mod, "row_bcast", 9)==0 && (
    24092410                        (mod[9]=='1' && mod[10]=='5' && mod[11]==0) ||
    24102411                        (mod[9]=='3' && mod[10]=='1' && mod[11]==0) || mod[9]==0))
  • CLRadeonExtender/trunk/tests/amdasm/GCNAsmOpc15.cpp

    r4807 r4808  
    10181018    { "   v_cndmask_b32  v154, v190, v107, vcc row_ror :  14 ",
    10191019        0x0334d6faU, 0xff012ebe, true, true, "" },
    1020     { "   v_cndmask_b32  v154, v190, v107, vcc wave_shl ",
    1021         0x0334d6faU, 0xff0130be, true, true, "" },
    1022     { "   v_cndmask_b32  v154, v190, v107, vcc wave_shl : 1 ",
    1023         0x0334d6faU, 0xff0130be, true, true, "" },
    1024     { "   v_cndmask_b32  v154, v190, v107, vcc wave_rol ",
    1025         0x0334d6faU, 0xff0134be, true, true, "" },
    1026     { "   v_cndmask_b32  v154, v190, v107, vcc wave_rol : 1 ",
    1027         0x0334d6faU, 0xff0134be, true, true, "" },
    1028     { "   v_cndmask_b32  v154, v190, v107, vcc wave_shr ",
    1029         0x0334d6faU, 0xff0138be, true, true, "" },
    1030     { "   v_cndmask_b32  v154, v190, v107, vcc wave_shr : 1 ",
    1031         0x0334d6faU, 0xff0138be, true, true, "" },
    1032     { "   v_cndmask_b32  v154, v190, v107, vcc wave_ror ",
    1033         0x0334d6faU, 0xff013cbe, true, true, "" },
    1034     { "   v_cndmask_b32  v154, v190, v107, vcc wave_ror : 1 ",
    1035         0x0334d6faU, 0xff013cbe, true, true, "" },
    10361020    { "   v_cndmask_b32  v154, v190, v107, vcc row_mirror",
    10371021        0x0334d6faU, 0xff0140be, true, true, "" },
     
    10401024    { "   v_cndmask_b32  v154, v190, v107, vcc row_hmirror",
    10411025        0x0334d6faU, 0xff0141be, true, true, "" },
    1042     { "   v_cndmask_b32  v154, v190, v107, vcc row_bcast:15",
    1043         0x0334d6faU, 0xff0142be, true, true, "" },
    1044     { "   v_cndmask_b32  v154, v190, v107, vcc row_bcast15",
    1045         0x0334d6faU, 0xff0142be, true, true, "" },
    1046     { "   v_cndmask_b32  v154, v190, v107, vcc row_bcast:31",
    1047         0x0334d6faU, 0xff0143be, true, true, "" },
    1048     { "   v_cndmask_b32  v154, v190, v107, vcc row_bcast31",
    1049         0x0334d6faU, 0xff0143be, true, true, "" },
    10501026    { "   v_cndmask_b32  v154, abs(v190), -v107, vcc row_shl:3 ",
    10511027        0x0334d6faU, 0xff6103be, true, true, "" },
     
    10621038        0x0334d6faU, 0xff0800be, true, true,
    10631039        "test.s:1:74: Warning: BoundCtrl is already defined\n" },
    1064     { "   v_cndmask_b32  v154, v190, v107, vcc row_ror:2 wave_ror:1 ",
    1065         0x0334d6faU, 0xff013cbe, true, true,
     1040    { "   v_cndmask_b32  v154, v190, v107, vcc row_ror:2 row_ror:1 ",
     1041        0x0334d6faU, 0xff0121be, true, true,
    10661042        "test.s:1:51: Warning: DppCtrl is already defined\n" },
    1067     { "   v_cndmask_b32  v154, v190, v107, vcc row_half_mirror wave_ror:1 ",
    1068         0x0334d6faU, 0xff013cbe, true, true,
     1043    { "   v_cndmask_b32  v154, v190, v107, vcc row_half_mirror row_ror:1 ",
     1044        0x0334d6faU, 0xff0121be, true, true,
    10691045        "test.s:1:57: Warning: DppCtrl is already defined\n" },
    10701046    { "   v_cndmask_b32  v154, v190, v107, vcc row_ror:35 ",
     
    10901066        "test.s:1:49: Warning: Value 0x20 truncated to 0x0\n"
    10911067        "test.s:1:49: Error: Illegal zero shift for row_XXX shift\n" },
    1092     { "   v_cndmask_b32  v154, v190, v107, vcc wave_shr : 0 ", 0, 0, false, false,
    1093         "test.s:1:52: Error: Value must be '1'\n"
    1094         "test.s:1:52: Error: Some garbages at VOP modifier place\n" },
    1095     { "   v_cndmask_b32  v154, v190, v107, vcc wave_shr :  ", 0, 0, false, false,
    1096         "test.s:1:53: Error: Value must be '1'\n" },
    1097     { "   v_cndmask_b32  v154, v190, v107, vcc wave_shl bound_ctrl:3", 0, 0, false, false,
    1098         "test.s:1:61: Error: Value must be '0' or '1'\n"
    1099         "test.s:1:61: Error: Some garbages at VOP modifier place\n" },
     1068    { "   v_cndmask_b32  v154, v190, v107, vcc row_shl:1 bound_ctrl:3", 0, 0, false, false,
     1069        "test.s:1:62: Error: Value must be '0' or '1'\n"
     1070        "test.s:1:62: Error: Some garbages at VOP modifier place\n" },
    11001071    { "   v_cndmask_b32  v154, v190, v107, vcc quad_perm:[2,1,0,3] "
    11011072        "bank_mask:, row_mask:", 0, 0, false, false,
     
    11131084    { "   v_cndmask_b32  v154, 12333, v107, vcc bank_mask:0 row_mask:0", 0, 0,
    11141085        false, false, "test.s:1:4: Error: Literal with SDWA or DPP word is illegal\n" },
     1086    { "   v_cndmask_b32  v154, v190, v107, vcc wave_shl ", 0, 0, false, false,
     1087        "test.s:1:41: Error: Unknown VOP modifier\n" },
     1088    { "   v_cndmask_b32  v154, v190, v107, vcc wave_rol ", 0, 0, false, false,
     1089        "test.s:1:41: Error: Unknown VOP modifier\n" },
     1090    { "   v_cndmask_b32  v154, v190, v107, vcc wave_shr ", 0, 0, false, false,
     1091        "test.s:1:41: Error: Unknown VOP modifier\n" },
     1092    { "   v_cndmask_b32  v154, v190, v107, vcc wave_ror ", 0, 0, false, false,
     1093        "test.s:1:41: Error: Unknown VOP modifier\n" },
     1094    { "   v_cndmask_b32  v154, v190, v107, vcc row_bcast:15", 0, 0, false, false,
     1095        "test.s:1:41: Error: Unknown VOP modifier\n"
     1096        "test.s:1:50: Error: Some garbages at VOP modifier place\n" },
     1097    { "   v_cndmask_b32  v154, v190, v107, vcc row_bcast15", 0, 0, false, false,
     1098        "test.s:1:41: Error: Unknown VOP modifier\n" },
     1099    { "   v_cndmask_b32  v154, v190, v107, vcc row_bcast:31", 0, 0, false, false,
     1100        "test.s:1:41: Error: Unknown VOP modifier\n"
     1101        "test.s:1:50: Error: Some garbages at VOP modifier place\n" },
     1102    { "   v_cndmask_b32  v154, v190, v107, vcc row_bcast31", 0, 0, false, false,
     1103        "test.s:1:41: Error: Unknown VOP modifier\n" },
    11151104    { nullptr, 0, 0, false, false, 0 }
    11161105};
Note: See TracChangeset for help on using the changeset viewer.