Ignore:
Timestamp:
Jul 13, 2015, 2:11:13 PM (4 years ago)
Author:
cameron
Message:

Upgrade LLVM to 3.6.1

Location:
icGREP/icgrep-devel/llvm-3.6.1.src
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/llvm-3.6.1.src/test/CodeGen/R600/load.ll

    r4574 r4664  
    1 ; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck --check-prefix=R600-CHECK --check-prefix=FUNC %s
    2 ; RUN: llc < %s -march=r600 -mcpu=cayman | FileCheck --check-prefix=R600-CHECK --check-prefix=FUNC %s
    3 ; RUN: llc < %s -march=amdgcn -mcpu=SI -verify-machineinstrs | FileCheck --check-prefix=SI-CHECK --check-prefix=FUNC %s
     1; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck --check-prefix=R600 --check-prefix=FUNC %s
     2; RUN: llc < %s -march=r600 -mcpu=cayman | FileCheck --check-prefix=R600 --check-prefix=FUNC %s
     3; RUN: llc < %s -march=amdgcn -mcpu=SI -verify-machineinstrs | FileCheck --check-prefix=SI --check-prefix=FUNC %s
     4; RUN: llc < %s -march=amdgcn -mcpu=tonga -verify-machineinstrs | FileCheck --check-prefix=SI --check-prefix=FUNC %s
    45
    56;===------------------------------------------------------------------------===;
     
    910; Load an i8 value from the global address space.
    1011; FUNC-LABEL: {{^}}load_i8:
    11 ; R600-CHECK: VTX_READ_8 T{{[0-9]+\.X, T[0-9]+\.X}}
    12 
    13 ; SI-CHECK: buffer_load_ubyte v{{[0-9]+}},
     12; R600: VTX_READ_8 T{{[0-9]+\.X, T[0-9]+\.X}}
     13
     14; SI: buffer_load_ubyte v{{[0-9]+}},
    1415define void @load_i8(i32 addrspace(1)* %out, i8 addrspace(1)* %in) {
    1516  %1 = load i8 addrspace(1)* %in
     
    2021
    2122; FUNC-LABEL: {{^}}load_i8_sext:
    22 ; R600-CHECK: VTX_READ_8 [[DST:T[0-9]\.[XYZW]]], [[DST]]
    23 ; R600-CHECK: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_CHAN:[XYZW]]], [[DST]]
    24 ; R600-CHECK: 24
    25 ; R600-CHECK: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_CHAN]]
    26 ; R600-CHECK: 24
    27 ; SI-CHECK: buffer_load_sbyte
     23; R600: VTX_READ_8 [[DST:T[0-9]\.[XYZW]]], [[DST]]
     24; R600: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_CHAN:[XYZW]]], [[DST]]
     25; R600: 24
     26; R600: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_CHAN]]
     27; R600: 24
     28; SI: buffer_load_sbyte
    2829define void @load_i8_sext(i32 addrspace(1)* %out, i8 addrspace(1)* %in) {
    2930entry:
     
    3536
    3637; FUNC-LABEL: {{^}}load_v2i8:
    37 ; R600-CHECK: VTX_READ_8
    38 ; R600-CHECK: VTX_READ_8
    39 ; SI-CHECK: buffer_load_ubyte
    40 ; SI-CHECK: buffer_load_ubyte
     38; R600: VTX_READ_8
     39; R600: VTX_READ_8
     40; SI: buffer_load_ubyte
     41; SI: buffer_load_ubyte
    4142define void @load_v2i8(<2 x i32> addrspace(1)* %out, <2 x i8> addrspace(1)* %in) {
    4243entry:
     
    4849
    4950; FUNC-LABEL: {{^}}load_v2i8_sext:
    50 ; R600-CHECK-DAG: VTX_READ_8 [[DST_X:T[0-9]\.[XYZW]]], [[DST_X]]
    51 ; R600-CHECK-DAG: VTX_READ_8 [[DST_Y:T[0-9]\.[XYZW]]], [[DST_Y]]
    52 ; R600-CHECK-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_X_CHAN:[XYZW]]], [[DST_X]]
    53 ; R600-CHECK-DAG: 24
    54 ; R600-CHECK-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_X_CHAN]]
    55 ; R600-CHECK-DAG: 24
    56 ; R600-CHECK-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_Y_CHAN:[XYZW]]], [[DST_Y]]
    57 ; R600-CHECK-DAG: 24
    58 ; R600-CHECK-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_Y_CHAN]]
    59 ; R600-CHECK-DAG: 24
    60 ; SI-CHECK: buffer_load_sbyte
    61 ; SI-CHECK: buffer_load_sbyte
     51; R600-DAG: VTX_READ_8 [[DST_X:T[0-9]\.[XYZW]]], [[DST_X]]
     52; R600-DAG: VTX_READ_8 [[DST_Y:T[0-9]\.[XYZW]]], [[DST_Y]]
     53; R600-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_X_CHAN:[XYZW]]], [[DST_X]]
     54; R600-DAG: 24
     55; R600-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_X_CHAN]]
     56; R600-DAG: 24
     57; R600-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_Y_CHAN:[XYZW]]], [[DST_Y]]
     58; R600-DAG: 24
     59; R600-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_Y_CHAN]]
     60; R600-DAG: 24
     61; SI: buffer_load_sbyte
     62; SI: buffer_load_sbyte
    6263define void @load_v2i8_sext(<2 x i32> addrspace(1)* %out, <2 x i8> addrspace(1)* %in) {
    6364entry:
     
    6970
    7071; FUNC-LABEL: {{^}}load_v4i8:
    71 ; R600-CHECK: VTX_READ_8
    72 ; R600-CHECK: VTX_READ_8
    73 ; R600-CHECK: VTX_READ_8
    74 ; R600-CHECK: VTX_READ_8
    75 ; SI-CHECK: buffer_load_ubyte
    76 ; SI-CHECK: buffer_load_ubyte
    77 ; SI-CHECK: buffer_load_ubyte
    78 ; SI-CHECK: buffer_load_ubyte
     72; R600: VTX_READ_8
     73; R600: VTX_READ_8
     74; R600: VTX_READ_8
     75; R600: VTX_READ_8
     76; SI: buffer_load_ubyte
     77; SI: buffer_load_ubyte
     78; SI: buffer_load_ubyte
     79; SI: buffer_load_ubyte
    7980define void @load_v4i8(<4 x i32> addrspace(1)* %out, <4 x i8> addrspace(1)* %in) {
    8081entry:
     
    8687
    8788; FUNC-LABEL: {{^}}load_v4i8_sext:
    88 ; R600-CHECK-DAG: VTX_READ_8 [[DST_X:T[0-9]\.[XYZW]]], [[DST_X]]
    89 ; R600-CHECK-DAG: VTX_READ_8 [[DST_Y:T[0-9]\.[XYZW]]], [[DST_Y]]
    90 ; R600-CHECK-DAG: VTX_READ_8 [[DST_Z:T[0-9]\.[XYZW]]], [[DST_Z]]
    91 ; R600-CHECK-DAG: VTX_READ_8 [[DST_W:T[0-9]\.[XYZW]]], [[DST_W]]
    92 ; R600-CHECK-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_X_CHAN:[XYZW]]], [[DST_X]]
    93 ; R600-CHECK-DAG: 24
    94 ; R600-CHECK-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_X_CHAN]]
    95 ; R600-CHECK-DAG: 24
    96 ; R600-CHECK-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_Y_CHAN:[XYZW]]], [[DST_Y]]
    97 ; R600-CHECK-DAG: 24
    98 ; R600-CHECK-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_Y_CHAN]]
    99 ; R600-CHECK-DAG: 24
    100 ; R600-CHECK-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_Z_CHAN:[XYZW]]], [[DST_Z]]
    101 ; R600-CHECK-DAG: 24
    102 ; R600-CHECK-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_Z_CHAN]]
    103 ; R600-CHECK-DAG: 24
    104 ; R600-CHECK-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_W_CHAN:[XYZW]]], [[DST_W]]
    105 ; R600-CHECK-DAG: 24
    106 ; R600-CHECK-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_W_CHAN]]
    107 ; R600-CHECK-DAG: 24
    108 ; SI-CHECK: buffer_load_sbyte
    109 ; SI-CHECK: buffer_load_sbyte
    110 ; SI-CHECK: buffer_load_sbyte
    111 ; SI-CHECK: buffer_load_sbyte
     89; R600-DAG: VTX_READ_8 [[DST_X:T[0-9]\.[XYZW]]], [[DST_X]]
     90; R600-DAG: VTX_READ_8 [[DST_Y:T[0-9]\.[XYZW]]], [[DST_Y]]
     91; R600-DAG: VTX_READ_8 [[DST_Z:T[0-9]\.[XYZW]]], [[DST_Z]]
     92; R600-DAG: VTX_READ_8 [[DST_W:T[0-9]\.[XYZW]]], [[DST_W]]
     93; R600-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_X_CHAN:[XYZW]]], [[DST_X]]
     94; R600-DAG: 24
     95; R600-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_X_CHAN]]
     96; R600-DAG: 24
     97; R600-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_Y_CHAN:[XYZW]]], [[DST_Y]]
     98; R600-DAG: 24
     99; R600-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_Y_CHAN]]
     100; R600-DAG: 24
     101; R600-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_Z_CHAN:[XYZW]]], [[DST_Z]]
     102; R600-DAG: 24
     103; R600-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_Z_CHAN]]
     104; R600-DAG: 24
     105; R600-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_W_CHAN:[XYZW]]], [[DST_W]]
     106; R600-DAG: 24
     107; R600-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_W_CHAN]]
     108; R600-DAG: 24
     109; SI: buffer_load_sbyte
     110; SI: buffer_load_sbyte
     111; SI: buffer_load_sbyte
     112; SI: buffer_load_sbyte
    112113define void @load_v4i8_sext(<4 x i32> addrspace(1)* %out, <4 x i8> addrspace(1)* %in) {
    113114entry:
     
    120121; Load an i16 value from the global address space.
    121122; FUNC-LABEL: {{^}}load_i16:
    122 ; R600-CHECK: VTX_READ_16 T{{[0-9]+\.X, T[0-9]+\.X}}
    123 ; SI-CHECK: buffer_load_ushort
     123; R600: VTX_READ_16 T{{[0-9]+\.X, T[0-9]+\.X}}
     124; SI: buffer_load_ushort
    124125define void @load_i16(i32 addrspace(1)* %out, i16 addrspace(1)* %in) {
    125126entry:
     
    131132
    132133; FUNC-LABEL: {{^}}load_i16_sext:
    133 ; R600-CHECK: VTX_READ_16 [[DST:T[0-9]\.[XYZW]]], [[DST]]
    134 ; R600-CHECK: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_CHAN:[XYZW]]], [[DST]]
    135 ; R600-CHECK: 16
    136 ; R600-CHECK: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_CHAN]]
    137 ; R600-CHECK: 16
    138 ; SI-CHECK: buffer_load_sshort
     134; R600: VTX_READ_16 [[DST:T[0-9]\.[XYZW]]], [[DST]]
     135; R600: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_CHAN:[XYZW]]], [[DST]]
     136; R600: 16
     137; R600: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_CHAN]]
     138; R600: 16
     139; SI: buffer_load_sshort
    139140define void @load_i16_sext(i32 addrspace(1)* %out, i16 addrspace(1)* %in) {
    140141entry:
     
    146147
    147148; FUNC-LABEL: {{^}}load_v2i16:
    148 ; R600-CHECK: VTX_READ_16
    149 ; R600-CHECK: VTX_READ_16
    150 ; SI-CHECK: buffer_load_ushort
    151 ; SI-CHECK: buffer_load_ushort
     149; R600: VTX_READ_16
     150; R600: VTX_READ_16
     151; SI: buffer_load_ushort
     152; SI: buffer_load_ushort
    152153define void @load_v2i16(<2 x i32> addrspace(1)* %out, <2 x i16> addrspace(1)* %in) {
    153154entry:
     
    159160
    160161; FUNC-LABEL: {{^}}load_v2i16_sext:
    161 ; R600-CHECK-DAG: VTX_READ_16 [[DST_X:T[0-9]\.[XYZW]]], [[DST_X]]
    162 ; R600-CHECK-DAG: VTX_READ_16 [[DST_Y:T[0-9]\.[XYZW]]], [[DST_Y]]
    163 ; R600-CHECK-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_X_CHAN:[XYZW]]], [[DST_X]]
    164 ; R600-CHECK-DAG: 16
    165 ; R600-CHECK-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_X_CHAN]]
    166 ; R600-CHECK-DAG: 16
    167 ; R600-CHECK-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_Y_CHAN:[XYZW]]], [[DST_Y]]
    168 ; R600-CHECK-DAG: 16
    169 ; R600-CHECK-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_Y_CHAN]]
    170 ; R600-CHECK-DAG: 16
    171 ; SI-CHECK: buffer_load_sshort
    172 ; SI-CHECK: buffer_load_sshort
     162; R600-DAG: VTX_READ_16 [[DST_X:T[0-9]\.[XYZW]]], [[DST_X]]
     163; R600-DAG: VTX_READ_16 [[DST_Y:T[0-9]\.[XYZW]]], [[DST_Y]]
     164; R600-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_X_CHAN:[XYZW]]], [[DST_X]]
     165; R600-DAG: 16
     166; R600-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_X_CHAN]]
     167; R600-DAG: 16
     168; R600-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_Y_CHAN:[XYZW]]], [[DST_Y]]
     169; R600-DAG: 16
     170; R600-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_Y_CHAN]]
     171; R600-DAG: 16
     172; SI: buffer_load_sshort
     173; SI: buffer_load_sshort
    173174define void @load_v2i16_sext(<2 x i32> addrspace(1)* %out, <2 x i16> addrspace(1)* %in) {
    174175entry:
     
    180181
    181182; FUNC-LABEL: {{^}}load_v4i16:
    182 ; R600-CHECK: VTX_READ_16
    183 ; R600-CHECK: VTX_READ_16
    184 ; R600-CHECK: VTX_READ_16
    185 ; R600-CHECK: VTX_READ_16
    186 ; SI-CHECK: buffer_load_ushort
    187 ; SI-CHECK: buffer_load_ushort
    188 ; SI-CHECK: buffer_load_ushort
    189 ; SI-CHECK: buffer_load_ushort
     183; R600: VTX_READ_16
     184; R600: VTX_READ_16
     185; R600: VTX_READ_16
     186; R600: VTX_READ_16
     187; SI: buffer_load_ushort
     188; SI: buffer_load_ushort
     189; SI: buffer_load_ushort
     190; SI: buffer_load_ushort
    190191define void @load_v4i16(<4 x i32> addrspace(1)* %out, <4 x i16> addrspace(1)* %in) {
    191192entry:
     
    197198
    198199; FUNC-LABEL: {{^}}load_v4i16_sext:
    199 ; R600-CHECK-DAG: VTX_READ_16 [[DST_X:T[0-9]\.[XYZW]]], [[DST_X]]
    200 ; R600-CHECK-DAG: VTX_READ_16 [[DST_Y:T[0-9]\.[XYZW]]], [[DST_Y]]
    201 ; R600-CHECK-DAG: VTX_READ_16 [[DST_Z:T[0-9]\.[XYZW]]], [[DST_Z]]
    202 ; R600-CHECK-DAG: VTX_READ_16 [[DST_W:T[0-9]\.[XYZW]]], [[DST_W]]
    203 ; R600-CHECK-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_X_CHAN:[XYZW]]], [[DST_X]]
    204 ; R600-CHECK-DAG: 16
    205 ; R600-CHECK-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_X_CHAN]]
    206 ; R600-CHECK-DAG: 16
    207 ; R600-CHECK-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_Y_CHAN:[XYZW]]], [[DST_Y]]
    208 ; R600-CHECK-DAG: 16
    209 ; R600-CHECK-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_Y_CHAN]]
    210 ; R600-CHECK-DAG: 16
    211 ; R600-CHECK-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_Z_CHAN:[XYZW]]], [[DST_Z]]
    212 ; R600-CHECK-DAG: 16
    213 ; R600-CHECK-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_Z_CHAN]]
    214 ; R600-CHECK-DAG: 16
    215 ; R600-CHECK-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_W_CHAN:[XYZW]]], [[DST_W]]
    216 ; R600-CHECK-DAG: 16
    217 ; R600-CHECK-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_W_CHAN]]
    218 ; R600-CHECK-DAG: 16
    219 ; SI-CHECK: buffer_load_sshort
    220 ; SI-CHECK: buffer_load_sshort
    221 ; SI-CHECK: buffer_load_sshort
    222 ; SI-CHECK: buffer_load_sshort
     200; R600-DAG: VTX_READ_16 [[DST_X:T[0-9]\.[XYZW]]], [[DST_X]]
     201; R600-DAG: VTX_READ_16 [[DST_Y:T[0-9]\.[XYZW]]], [[DST_Y]]
     202; R600-DAG: VTX_READ_16 [[DST_Z:T[0-9]\.[XYZW]]], [[DST_Z]]
     203; R600-DAG: VTX_READ_16 [[DST_W:T[0-9]\.[XYZW]]], [[DST_W]]
     204; R600-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_X_CHAN:[XYZW]]], [[DST_X]]
     205; R600-DAG: 16
     206; R600-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_X_CHAN]]
     207; R600-DAG: 16
     208; R600-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_Y_CHAN:[XYZW]]], [[DST_Y]]
     209; R600-DAG: 16
     210; R600-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_Y_CHAN]]
     211; R600-DAG: 16
     212; R600-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_Z_CHAN:[XYZW]]], [[DST_Z]]
     213; R600-DAG: 16
     214; R600-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_Z_CHAN]]
     215; R600-DAG: 16
     216; R600-DAG: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_W_CHAN:[XYZW]]], [[DST_W]]
     217; R600-DAG: 16
     218; R600-DAG: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_W_CHAN]]
     219; R600-DAG: 16
     220; SI: buffer_load_sshort
     221; SI: buffer_load_sshort
     222; SI: buffer_load_sshort
     223; SI: buffer_load_sshort
    223224define void @load_v4i16_sext(<4 x i32> addrspace(1)* %out, <4 x i16> addrspace(1)* %in) {
    224225entry:
     
    231232; load an i32 value from the global address space.
    232233; FUNC-LABEL: {{^}}load_i32:
    233 ; R600-CHECK: VTX_READ_32 T{{[0-9]+}}.X, T{{[0-9]+}}.X, 0
    234 
    235 ; SI-CHECK: buffer_load_dword v{{[0-9]+}}
     234; R600: VTX_READ_32 T{{[0-9]+}}.X, T{{[0-9]+}}.X, 0
     235
     236; SI: buffer_load_dword v{{[0-9]+}}
    236237define void @load_i32(i32 addrspace(1)* %out, i32 addrspace(1)* %in) {
    237238entry:
     
    243244; load a f32 value from the global address space.
    244245; FUNC-LABEL: {{^}}load_f32:
    245 ; R600-CHECK: VTX_READ_32 T{{[0-9]+}}.X, T{{[0-9]+}}.X, 0
    246 
    247 ; SI-CHECK: buffer_load_dword v{{[0-9]+}}
     246; R600: VTX_READ_32 T{{[0-9]+}}.X, T{{[0-9]+}}.X, 0
     247
     248; SI: buffer_load_dword v{{[0-9]+}}
    248249define void @load_f32(float addrspace(1)* %out, float addrspace(1)* %in) {
    249250entry:
     
    255256; load a v2f32 value from the global address space
    256257; FUNC-LABEL: {{^}}load_v2f32:
    257 ; R600-CHECK: MEM_RAT
    258 ; R600-CHECK: VTX_READ_64
    259 ; SI-CHECK: buffer_load_dwordx2
     258; R600: MEM_RAT
     259; R600: VTX_READ_64
     260; SI: buffer_load_dwordx2
    260261define void @load_v2f32(<2 x float> addrspace(1)* %out, <2 x float> addrspace(1)* %in) {
    261262entry:
     
    266267
    267268; FUNC-LABEL: {{^}}load_i64:
    268 ; R600-CHECK: VTX_READ_64
    269 ; SI-CHECK: buffer_load_dwordx2
     269; R600: VTX_READ_64
     270; SI: buffer_load_dwordx2
    270271define void @load_i64(i64 addrspace(1)* %out, i64 addrspace(1)* %in) {
    271272entry:
     
    276277
    277278; FUNC-LABEL: {{^}}load_i64_sext:
    278 ; R600-CHECK: MEM_RAT
    279 ; R600-CHECK: MEM_RAT
    280 ; R600-CHECK: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, T{{[0-9]\.[XYZW]}},  literal.x
    281 ; R600-CHECK: 31
    282 ; SI-CHECK: buffer_load_dword
     279; R600: MEM_RAT
     280; R600: MEM_RAT
     281; R600: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, T{{[0-9]\.[XYZW]}},  literal.x
     282; R600: 31
     283; SI: buffer_load_dword
    283284
    284285define void @load_i64_sext(i64 addrspace(1)* %out, i32 addrspace(1)* %in) {
     
    291292
    292293; FUNC-LABEL: {{^}}load_i64_zext:
    293 ; R600-CHECK: MEM_RAT
    294 ; R600-CHECK: MEM_RAT
     294; R600: MEM_RAT
     295; R600: MEM_RAT
    295296define void @load_i64_zext(i64 addrspace(1)* %out, i32 addrspace(1)* %in) {
    296297entry:
     
    302303
    303304; FUNC-LABEL: {{^}}load_v8i32:
    304 ; R600-CHECK: VTX_READ_128
    305 ; R600-CHECK: VTX_READ_128
     305; R600: VTX_READ_128
     306; R600: VTX_READ_128
    306307; XXX: We should be using DWORDX4 instructions on SI.
    307 ; SI-CHECK: buffer_load_dword
    308 ; SI-CHECK: buffer_load_dword
    309 ; SI-CHECK: buffer_load_dword
    310 ; SI-CHECK: buffer_load_dword
    311 ; SI-CHECK: buffer_load_dword
    312 ; SI-CHECK: buffer_load_dword
    313 ; SI-CHECK: buffer_load_dword
    314 ; SI-CHECK: buffer_load_dword
     308; SI: buffer_load_dword
     309; SI: buffer_load_dword
     310; SI: buffer_load_dword
     311; SI: buffer_load_dword
     312; SI: buffer_load_dword
     313; SI: buffer_load_dword
     314; SI: buffer_load_dword
     315; SI: buffer_load_dword
    315316define void @load_v8i32(<8 x i32> addrspace(1)* %out, <8 x i32> addrspace(1)* %in) {
    316317entry:
     
    321322
    322323; FUNC-LABEL: {{^}}load_v16i32:
    323 ; R600-CHECK: VTX_READ_128
    324 ; R600-CHECK: VTX_READ_128
    325 ; R600-CHECK: VTX_READ_128
    326 ; R600-CHECK: VTX_READ_128
     324; R600: VTX_READ_128
     325; R600: VTX_READ_128
     326; R600: VTX_READ_128
     327; R600: VTX_READ_128
    327328; XXX: We should be using DWORDX4 instructions on SI.
    328 ; SI-CHECK: buffer_load_dword
    329 ; SI-CHECK: buffer_load_dword
    330 ; SI-CHECK: buffer_load_dword
    331 ; SI-CHECK: buffer_load_dword
    332 ; SI-CHECK: buffer_load_dword
    333 ; SI-CHECK: buffer_load_dword
    334 ; SI-CHECK: buffer_load_dword
    335 ; SI-CHECK: buffer_load_dword
    336 ; SI-CHECK: buffer_load_dword
    337 ; SI-CHECK: buffer_load_dword
    338 ; SI-CHECK: buffer_load_dword
    339 ; SI-CHECK: buffer_load_dword
    340 ; SI-CHECK: buffer_load_dword
    341 ; SI-CHECK: buffer_load_dword
    342 ; SI-CHECK: buffer_load_dword
    343 ; SI-CHECK: buffer_load_dword
     329; SI: buffer_load_dword
     330; SI: buffer_load_dword
     331; SI: buffer_load_dword
     332; SI: buffer_load_dword
     333; SI: buffer_load_dword
     334; SI: buffer_load_dword
     335; SI: buffer_load_dword
     336; SI: buffer_load_dword
     337; SI: buffer_load_dword
     338; SI: buffer_load_dword
     339; SI: buffer_load_dword
     340; SI: buffer_load_dword
     341; SI: buffer_load_dword
     342; SI: buffer_load_dword
     343; SI: buffer_load_dword
     344; SI: buffer_load_dword
    344345define void @load_v16i32(<16 x i32> addrspace(1)* %out, <16 x i32> addrspace(1)* %in) {
    345346entry:
     
    355356; Load a sign-extended i8 value
    356357; FUNC-LABEL: {{^}}load_const_i8_sext:
    357 ; R600-CHECK: VTX_READ_8 [[DST:T[0-9]\.[XYZW]]], [[DST]]
    358 ; R600-CHECK: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_CHAN:[XYZW]]], [[DST]]
    359 ; R600-CHECK: 24
    360 ; R600-CHECK: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_CHAN]]
    361 ; R600-CHECK: 24
    362 ; SI-CHECK: buffer_load_sbyte v{{[0-9]+}},
     358; R600: VTX_READ_8 [[DST:T[0-9]\.[XYZW]]], [[DST]]
     359; R600: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_CHAN:[XYZW]]], [[DST]]
     360; R600: 24
     361; R600: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_CHAN]]
     362; R600: 24
     363; SI: buffer_load_sbyte v{{[0-9]+}},
    363364define void @load_const_i8_sext(i32 addrspace(1)* %out, i8 addrspace(2)* %in) {
    364365entry:
     
    371372; Load an aligned i8 value
    372373; FUNC-LABEL: {{^}}load_const_i8_aligned:
    373 ; R600-CHECK: VTX_READ_8 T{{[0-9]+\.X, T[0-9]+\.X}}
    374 ; SI-CHECK: buffer_load_ubyte v{{[0-9]+}},
     374; R600: VTX_READ_8 T{{[0-9]+\.X, T[0-9]+\.X}}
     375; SI: buffer_load_ubyte v{{[0-9]+}},
    375376define void @load_const_i8_aligned(i32 addrspace(1)* %out, i8 addrspace(2)* %in) {
    376377entry:
     
    383384; Load an un-aligned i8 value
    384385; FUNC-LABEL: {{^}}load_const_i8_unaligned:
    385 ; R600-CHECK: VTX_READ_8 T{{[0-9]+\.X, T[0-9]+\.X}}
    386 ; SI-CHECK: buffer_load_ubyte v{{[0-9]+}},
     386; R600: VTX_READ_8 T{{[0-9]+\.X, T[0-9]+\.X}}
     387; SI: buffer_load_ubyte v{{[0-9]+}},
    387388define void @load_const_i8_unaligned(i32 addrspace(1)* %out, i8 addrspace(2)* %in) {
    388389entry:
     
    396397; Load a sign-extended i16 value
    397398; FUNC-LABEL: {{^}}load_const_i16_sext:
    398 ; R600-CHECK: VTX_READ_16 [[DST:T[0-9]\.[XYZW]]], [[DST]]
    399 ; R600-CHECK: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_CHAN:[XYZW]]], [[DST]]
    400 ; R600-CHECK: 16
    401 ; R600-CHECK: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_CHAN]]
    402 ; R600-CHECK: 16
    403 ; SI-CHECK: buffer_load_sshort
     399; R600: VTX_READ_16 [[DST:T[0-9]\.[XYZW]]], [[DST]]
     400; R600: LSHL {{[* ]*}}T{{[0-9]}}.[[LSHL_CHAN:[XYZW]]], [[DST]]
     401; R600: 16
     402; R600: ASHR {{[* ]*}}T{{[0-9]\.[XYZW]}}, PV.[[LSHL_CHAN]]
     403; R600: 16
     404; SI: buffer_load_sshort
    404405define void @load_const_i16_sext(i32 addrspace(1)* %out, i16 addrspace(2)* %in) {
    405406entry:
     
    412413; Load an aligned i16 value
    413414; FUNC-LABEL: {{^}}load_const_i16_aligned:
    414 ; R600-CHECK: VTX_READ_16 T{{[0-9]+\.X, T[0-9]+\.X}}
    415 ; SI-CHECK: buffer_load_ushort
     415; R600: VTX_READ_16 T{{[0-9]+\.X, T[0-9]+\.X}}
     416; SI: buffer_load_ushort
    416417define void @load_const_i16_aligned(i32 addrspace(1)* %out, i16 addrspace(2)* %in) {
    417418entry:
     
    424425; Load an un-aligned i16 value
    425426; FUNC-LABEL: {{^}}load_const_i16_unaligned:
    426 ; R600-CHECK: VTX_READ_16 T{{[0-9]+\.X, T[0-9]+\.X}}
    427 ; SI-CHECK: buffer_load_ushort
     427; R600: VTX_READ_16 T{{[0-9]+\.X, T[0-9]+\.X}}
     428; SI: buffer_load_ushort
    428429define void @load_const_i16_unaligned(i32 addrspace(1)* %out, i16 addrspace(2)* %in) {
    429430entry:
     
    437438; Load an i32 value from the constant address space.
    438439; FUNC-LABEL: {{^}}load_const_addrspace_i32:
    439 ; R600-CHECK: VTX_READ_32 T{{[0-9]+}}.X, T{{[0-9]+}}.X, 0
    440 
    441 ; SI-CHECK: s_load_dword s{{[0-9]+}}
     440; R600: VTX_READ_32 T{{[0-9]+}}.X, T{{[0-9]+}}.X, 0
     441
     442; SI: s_load_dword s{{[0-9]+}}
    442443define void @load_const_addrspace_i32(i32 addrspace(1)* %out, i32 addrspace(2)* %in) {
    443444entry:
     
    449450; Load a f32 value from the constant address space.
    450451; FUNC-LABEL: {{^}}load_const_addrspace_f32:
    451 ; R600-CHECK: VTX_READ_32 T{{[0-9]+}}.X, T{{[0-9]+}}.X, 0
    452 
    453 ; SI-CHECK: s_load_dword s{{[0-9]+}}
     452; R600: VTX_READ_32 T{{[0-9]+}}.X, T{{[0-9]+}}.X, 0
     453
     454; SI: s_load_dword s{{[0-9]+}}
    454455define void @load_const_addrspace_f32(float addrspace(1)* %out, float addrspace(2)* %in) {
    455456  %1 = load float addrspace(2)* %in
     
    464465; Load an i8 value from the local address space.
    465466; FUNC-LABEL: {{^}}load_i8_local:
    466 ; R600-CHECK: LDS_UBYTE_READ_RET
    467 ; SI-CHECK-NOT: s_wqm_b64
    468 ; SI-CHECK: s_mov_b32 m0
    469 ; SI-CHECK: ds_read_u8
     467; R600: LDS_UBYTE_READ_RET
     468; SI-NOT: s_wqm_b64
     469; SI: s_mov_b32 m0
     470; SI: ds_read_u8
    470471define void @load_i8_local(i32 addrspace(1)* %out, i8 addrspace(3)* %in) {
    471472  %1 = load i8 addrspace(3)* %in
     
    476477
    477478; FUNC-LABEL: {{^}}load_i8_sext_local:
    478 ; R600-CHECK: LDS_UBYTE_READ_RET
    479 ; R600-CHECK: ASHR
    480 ; SI-CHECK-NOT: s_wqm_b64
    481 ; SI-CHECK: s_mov_b32 m0
    482 ; SI-CHECK: ds_read_i8
     479; R600: LDS_UBYTE_READ_RET
     480; R600: ASHR
     481; SI-NOT: s_wqm_b64
     482; SI: s_mov_b32 m0
     483; SI: ds_read_i8
    483484define void @load_i8_sext_local(i32 addrspace(1)* %out, i8 addrspace(3)* %in) {
    484485entry:
     
    490491
    491492; FUNC-LABEL: {{^}}load_v2i8_local:
    492 ; R600-CHECK: LDS_UBYTE_READ_RET
    493 ; R600-CHECK: LDS_UBYTE_READ_RET
    494 ; SI-CHECK-NOT: s_wqm_b64
    495 ; SI-CHECK: s_mov_b32 m0
    496 ; SI-CHECK: ds_read_u8
    497 ; SI-CHECK: ds_read_u8
     493; R600: LDS_UBYTE_READ_RET
     494; R600: LDS_UBYTE_READ_RET
     495; SI-NOT: s_wqm_b64
     496; SI: s_mov_b32 m0
     497; SI: ds_read_u8
     498; SI: ds_read_u8
    498499define void @load_v2i8_local(<2 x i32> addrspace(1)* %out, <2 x i8> addrspace(3)* %in) {
    499500entry:
     
    505506
    506507; FUNC-LABEL: {{^}}load_v2i8_sext_local:
    507 ; R600-CHECK-DAG: LDS_UBYTE_READ_RET
    508 ; R600-CHECK-DAG: LDS_UBYTE_READ_RET
    509 ; R600-CHECK-DAG: ASHR
    510 ; R600-CHECK-DAG: ASHR
    511 ; SI-CHECK-NOT: s_wqm_b64
    512 ; SI-CHECK: s_mov_b32 m0
    513 ; SI-CHECK: ds_read_i8
    514 ; SI-CHECK: ds_read_i8
     508; R600-DAG: LDS_UBYTE_READ_RET
     509; R600-DAG: LDS_UBYTE_READ_RET
     510; R600-DAG: ASHR
     511; R600-DAG: ASHR
     512; SI-NOT: s_wqm_b64
     513; SI: s_mov_b32 m0
     514; SI: ds_read_i8
     515; SI: ds_read_i8
    515516define void @load_v2i8_sext_local(<2 x i32> addrspace(1)* %out, <2 x i8> addrspace(3)* %in) {
    516517entry:
     
    522523
    523524; FUNC-LABEL: {{^}}load_v4i8_local:
    524 ; R600-CHECK: LDS_UBYTE_READ_RET
    525 ; R600-CHECK: LDS_UBYTE_READ_RET
    526 ; R600-CHECK: LDS_UBYTE_READ_RET
    527 ; R600-CHECK: LDS_UBYTE_READ_RET
    528 ; SI-CHECK-NOT: s_wqm_b64
    529 ; SI-CHECK: s_mov_b32 m0
    530 ; SI-CHECK: ds_read_u8
    531 ; SI-CHECK: ds_read_u8
    532 ; SI-CHECK: ds_read_u8
    533 ; SI-CHECK: ds_read_u8
     525; R600: LDS_UBYTE_READ_RET
     526; R600: LDS_UBYTE_READ_RET
     527; R600: LDS_UBYTE_READ_RET
     528; R600: LDS_UBYTE_READ_RET
     529; SI-NOT: s_wqm_b64
     530; SI: s_mov_b32 m0
     531; SI: ds_read_u8
     532; SI: ds_read_u8
     533; SI: ds_read_u8
     534; SI: ds_read_u8
    534535define void @load_v4i8_local(<4 x i32> addrspace(1)* %out, <4 x i8> addrspace(3)* %in) {
    535536entry:
     
    541542
    542543; FUNC-LABEL: {{^}}load_v4i8_sext_local:
    543 ; R600-CHECK-DAG: LDS_UBYTE_READ_RET
    544 ; R600-CHECK-DAG: LDS_UBYTE_READ_RET
    545 ; R600-CHECK-DAG: LDS_UBYTE_READ_RET
    546 ; R600-CHECK-DAG: LDS_UBYTE_READ_RET
    547 ; R600-CHECK-DAG: ASHR
    548 ; R600-CHECK-DAG: ASHR
    549 ; R600-CHECK-DAG: ASHR
    550 ; R600-CHECK-DAG: ASHR
    551 ; SI-CHECK-NOT: s_wqm_b64
    552 ; SI-CHECK: s_mov_b32 m0
    553 ; SI-CHECK: ds_read_i8
    554 ; SI-CHECK: ds_read_i8
    555 ; SI-CHECK: ds_read_i8
    556 ; SI-CHECK: ds_read_i8
     544; R600-DAG: LDS_UBYTE_READ_RET
     545; R600-DAG: LDS_UBYTE_READ_RET
     546; R600-DAG: LDS_UBYTE_READ_RET
     547; R600-DAG: LDS_UBYTE_READ_RET
     548; R600-DAG: ASHR
     549; R600-DAG: ASHR
     550; R600-DAG: ASHR
     551; R600-DAG: ASHR
     552; SI-NOT: s_wqm_b64
     553; SI: s_mov_b32 m0
     554; SI: ds_read_i8
     555; SI: ds_read_i8
     556; SI: ds_read_i8
     557; SI: ds_read_i8
    557558define void @load_v4i8_sext_local(<4 x i32> addrspace(1)* %out, <4 x i8> addrspace(3)* %in) {
    558559entry:
     
    565566; Load an i16 value from the local address space.
    566567; FUNC-LABEL: {{^}}load_i16_local:
    567 ; R600-CHECK: LDS_USHORT_READ_RET
    568 ; SI-CHECK-NOT: s_wqm_b64
    569 ; SI-CHECK: s_mov_b32 m0
    570 ; SI-CHECK: ds_read_u16
     568; R600: LDS_USHORT_READ_RET
     569; SI-NOT: s_wqm_b64
     570; SI: s_mov_b32 m0
     571; SI: ds_read_u16
    571572define void @load_i16_local(i32 addrspace(1)* %out, i16 addrspace(3)* %in) {
    572573entry:
     
    578579
    579580; FUNC-LABEL: {{^}}load_i16_sext_local:
    580 ; R600-CHECK: LDS_USHORT_READ_RET
    581 ; R600-CHECK: ASHR
    582 ; SI-CHECK-NOT: s_wqm_b64
    583 ; SI-CHECK: s_mov_b32 m0
    584 ; SI-CHECK: ds_read_i16
     581; R600: LDS_USHORT_READ_RET
     582; R600: ASHR
     583; SI-NOT: s_wqm_b64
     584; SI: s_mov_b32 m0
     585; SI: ds_read_i16
    585586define void @load_i16_sext_local(i32 addrspace(1)* %out, i16 addrspace(3)* %in) {
    586587entry:
     
    592593
    593594; FUNC-LABEL: {{^}}load_v2i16_local:
    594 ; R600-CHECK: LDS_USHORT_READ_RET
    595 ; R600-CHECK: LDS_USHORT_READ_RET
    596 ; SI-CHECK-NOT: s_wqm_b64
    597 ; SI-CHECK: s_mov_b32 m0
    598 ; SI-CHECK: ds_read_u16
    599 ; SI-CHECK: ds_read_u16
     595; R600: LDS_USHORT_READ_RET
     596; R600: LDS_USHORT_READ_RET
     597; SI-NOT: s_wqm_b64
     598; SI: s_mov_b32 m0
     599; SI: ds_read_u16
     600; SI: ds_read_u16
    600601define void @load_v2i16_local(<2 x i32> addrspace(1)* %out, <2 x i16> addrspace(3)* %in) {
    601602entry:
     
    607608
    608609; FUNC-LABEL: {{^}}load_v2i16_sext_local:
    609 ; R600-CHECK-DAG: LDS_USHORT_READ_RET
    610 ; R600-CHECK-DAG: LDS_USHORT_READ_RET
    611 ; R600-CHECK-DAG: ASHR
    612 ; R600-CHECK-DAG: ASHR
    613 ; SI-CHECK-NOT: s_wqm_b64
    614 ; SI-CHECK: s_mov_b32 m0
    615 ; SI-CHECK: ds_read_i16
    616 ; SI-CHECK: ds_read_i16
     610; R600-DAG: LDS_USHORT_READ_RET
     611; R600-DAG: LDS_USHORT_READ_RET
     612; R600-DAG: ASHR
     613; R600-DAG: ASHR
     614; SI-NOT: s_wqm_b64
     615; SI: s_mov_b32 m0
     616; SI: ds_read_i16
     617; SI: ds_read_i16
    617618define void @load_v2i16_sext_local(<2 x i32> addrspace(1)* %out, <2 x i16> addrspace(3)* %in) {
    618619entry:
     
    624625
    625626; FUNC-LABEL: {{^}}load_v4i16_local:
    626 ; R600-CHECK: LDS_USHORT_READ_RET
    627 ; R600-CHECK: LDS_USHORT_READ_RET
    628 ; R600-CHECK: LDS_USHORT_READ_RET
    629 ; R600-CHECK: LDS_USHORT_READ_RET
    630 ; SI-CHECK-NOT: s_wqm_b64
    631 ; SI-CHECK: s_mov_b32 m0
    632 ; SI-CHECK: ds_read_u16
    633 ; SI-CHECK: ds_read_u16
    634 ; SI-CHECK: ds_read_u16
    635 ; SI-CHECK: ds_read_u16
     627; R600: LDS_USHORT_READ_RET
     628; R600: LDS_USHORT_READ_RET
     629; R600: LDS_USHORT_READ_RET
     630; R600: LDS_USHORT_READ_RET
     631; SI-NOT: s_wqm_b64
     632; SI: s_mov_b32 m0
     633; SI: ds_read_u16
     634; SI: ds_read_u16
     635; SI: ds_read_u16
     636; SI: ds_read_u16
    636637define void @load_v4i16_local(<4 x i32> addrspace(1)* %out, <4 x i16> addrspace(3)* %in) {
    637638entry:
     
    643644
    644645; FUNC-LABEL: {{^}}load_v4i16_sext_local:
    645 ; R600-CHECK-DAG: LDS_USHORT_READ_RET
    646 ; R600-CHECK-DAG: LDS_USHORT_READ_RET
    647 ; R600-CHECK-DAG: LDS_USHORT_READ_RET
    648 ; R600-CHECK-DAG: LDS_USHORT_READ_RET
    649 ; R600-CHECK-DAG: ASHR
    650 ; R600-CHECK-DAG: ASHR
    651 ; R600-CHECK-DAG: ASHR
    652 ; R600-CHECK-DAG: ASHR
    653 ; SI-CHECK-NOT: s_wqm_b64
    654 ; SI-CHECK: s_mov_b32 m0
    655 ; SI-CHECK: ds_read_i16
    656 ; SI-CHECK: ds_read_i16
    657 ; SI-CHECK: ds_read_i16
    658 ; SI-CHECK: ds_read_i16
     646; R600-DAG: LDS_USHORT_READ_RET
     647; R600-DAG: LDS_USHORT_READ_RET
     648; R600-DAG: LDS_USHORT_READ_RET
     649; R600-DAG: LDS_USHORT_READ_RET
     650; R600-DAG: ASHR
     651; R600-DAG: ASHR
     652; R600-DAG: ASHR
     653; R600-DAG: ASHR
     654; SI-NOT: s_wqm_b64
     655; SI: s_mov_b32 m0
     656; SI: ds_read_i16
     657; SI: ds_read_i16
     658; SI: ds_read_i16
     659; SI: ds_read_i16
    659660define void @load_v4i16_sext_local(<4 x i32> addrspace(1)* %out, <4 x i16> addrspace(3)* %in) {
    660661entry:
     
    667668; load an i32 value from the local address space.
    668669; FUNC-LABEL: {{^}}load_i32_local:
    669 ; R600-CHECK: LDS_READ_RET
    670 ; SI-CHECK-NOT: s_wqm_b64
    671 ; SI-CHECK: s_mov_b32 m0
    672 ; SI-CHECK: ds_read_b32
     670; R600: LDS_READ_RET
     671; SI-NOT: s_wqm_b64
     672; SI: s_mov_b32 m0
     673; SI: ds_read_b32
    673674define void @load_i32_local(i32 addrspace(1)* %out, i32 addrspace(3)* %in) {
    674675entry:
     
    680681; load a f32 value from the local address space.
    681682; FUNC-LABEL: {{^}}load_f32_local:
    682 ; R600-CHECK: LDS_READ_RET
    683 ; SI-CHECK: s_mov_b32 m0
    684 ; SI-CHECK: ds_read_b32
     683; R600: LDS_READ_RET
     684; SI: s_mov_b32 m0
     685; SI: ds_read_b32
    685686define void @load_f32_local(float addrspace(1)* %out, float addrspace(3)* %in) {
    686687entry:
     
    692693; load a v2f32 value from the local address space
    693694; FUNC-LABEL: {{^}}load_v2f32_local:
    694 ; R600-CHECK: LDS_READ_RET
    695 ; R600-CHECK: LDS_READ_RET
    696 ; SI-CHECK: s_mov_b32 m0
    697 ; SI-CHECK: ds_read_b64
     695; R600: LDS_READ_RET
     696; R600: LDS_READ_RET
     697; SI: s_mov_b32 m0
     698; SI: ds_read_b64
    698699define void @load_v2f32_local(<2 x float> addrspace(1)* %out, <2 x float> addrspace(3)* %in) {
    699700entry:
     
    705706; Test loading a i32 and v2i32 value from the same base pointer.
    706707; FUNC-LABEL: {{^}}load_i32_v2i32_local:
    707 ; R600-CHECK: LDS_READ_RET
    708 ; R600-CHECK: LDS_READ_RET
    709 ; R600-CHECK: LDS_READ_RET
    710 ; SI-CHECK-DAG: ds_read_b32
    711 ; SI-CHECK-DAG: ds_read2_b32
     708; R600: LDS_READ_RET
     709; R600: LDS_READ_RET
     710; R600: LDS_READ_RET
     711; SI-DAG: ds_read_b32
     712; SI-DAG: ds_read2_b32
    712713define void @load_i32_v2i32_local(<2 x i32> addrspace(1)* %out, i32 addrspace(3)* %in) {
    713714  %scalar = load i32 addrspace(3)* %in
     
    727728; an immediate.
    728729; FUNC-LABEL: {{^}}load_i32_local_const_ptr:
    729 ; SI-CHECK: v_mov_b32_e32 v[[ZERO:[0-9]+]], 0
    730 ; SI-CHECK: ds_read_b32 v0, v[[ZERO]] offset:4
    731 ; R600-CHECK: LDS_READ_RET
     730; SI: v_mov_b32_e32 v[[ZERO:[0-9]+]], 0
     731; SI: ds_read_b32 v0, v[[ZERO]] offset:4
     732; R600: LDS_READ_RET
    732733define void @load_i32_local_const_ptr(i32 addrspace(1)* %out, i32 addrspace(3)* %in) {
    733734entry:
Note: See TracChangeset for help on using the changeset viewer.