| 
 | 1 | +# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5  | 
1 | 2 | # RUN: llc -mtriple=amdgcn -mcpu=gfx90a -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -enable-var-scope -check-prefix=GCN %s  | 
2 | 3 | 
 
  | 
3 |  | -# GCN-LABEL: name: ds_read_b32_v_v  | 
4 |  | -# GCN: vreg_64_align2 = DS_READ2_B32  | 
 | 4 | +---  | 
5 | 5 | name: ds_read_b32_v_v  | 
6 | 6 | body:             |  | 
7 | 7 |   bb.0:  | 
8 | 8 | 
  | 
 | 9 | +    ; GCN-LABEL: name: ds_read_b32_v_v  | 
 | 10 | +    ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF  | 
 | 11 | +    ; GCN-NEXT: [[DS_READ2_B32_gfx9_:%[0-9]+]]:vreg_64_align2 = DS_READ2_B32_gfx9 [[DEF]], 0, 2, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`, addrspace 3)  | 
 | 12 | +    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[DS_READ2_B32_gfx9_]].sub0  | 
 | 13 | +    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY killed [[DS_READ2_B32_gfx9_]].sub1  | 
9 | 14 |     %0:vgpr_32 = IMPLICIT_DEF  | 
10 | 15 |     %1:vgpr_32 = DS_READ_B32_gfx9 %0, 0, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`)  | 
11 | 16 |     %2:vgpr_32 = DS_READ_B32_gfx9 %0, 8, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`)  | 
12 | 17 | ...  | 
13 |  | - | 
14 |  | -# GCN-LABEL: name: ds_read_b32_a_a  | 
15 |  | -# GCN: areg_64_align2 = DS_READ2_B32  | 
 | 18 | +---  | 
16 | 19 | name: ds_read_b32_a_a  | 
17 | 20 | body:             |  | 
18 | 21 |   bb.0:  | 
19 | 22 | 
  | 
 | 23 | +    ; GCN-LABEL: name: ds_read_b32_a_a  | 
 | 24 | +    ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF  | 
 | 25 | +    ; GCN-NEXT: [[DS_READ2_B32_gfx9_:%[0-9]+]]:areg_64_align2 = DS_READ2_B32_gfx9 [[DEF]], 0, 2, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`, addrspace 3)  | 
 | 26 | +    ; GCN-NEXT: [[COPY:%[0-9]+]]:agpr_32 = COPY [[DS_READ2_B32_gfx9_]].sub0  | 
 | 27 | +    ; GCN-NEXT: [[COPY1:%[0-9]+]]:agpr_32 = COPY killed [[DS_READ2_B32_gfx9_]].sub1  | 
20 | 28 |     %0:vgpr_32 = IMPLICIT_DEF  | 
21 | 29 |     %1:agpr_32 = DS_READ_B32_gfx9 %0, 0, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`)  | 
22 | 30 |     %2:agpr_32 = DS_READ_B32_gfx9 %0, 8, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`)  | 
23 | 31 | ...  | 
24 | 32 | 
 
  | 
25 |  | -# GCN-LABEL: name: ds_read_b32_v_a  | 
26 |  | -# GCN: vgpr_32 = DS_READ_B32  | 
27 |  | -# GCN: agpr_32 = DS_READ_B32  | 
 | 33 | +---  | 
28 | 34 | name: ds_read_b32_v_a  | 
29 | 35 | body:             |  | 
30 | 36 |   bb.0:  | 
31 | 37 | 
  | 
 | 38 | +    ; GCN-LABEL: name: ds_read_b32_v_a  | 
 | 39 | +    ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF  | 
 | 40 | +    ; GCN-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[DEF]], 0, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`, addrspace 3)  | 
 | 41 | +    ; GCN-NEXT: [[DS_READ_B32_gfx9_1:%[0-9]+]]:agpr_32 = DS_READ_B32_gfx9 [[DEF]], 8, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`, addrspace 3)  | 
32 | 42 |     %0:vgpr_32 = IMPLICIT_DEF  | 
33 | 43 |     %1:vgpr_32 = DS_READ_B32_gfx9 %0, 0, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`)  | 
34 | 44 |     %2:agpr_32 = DS_READ_B32_gfx9 %0, 8, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`)  | 
35 | 45 | ...  | 
36 | 46 | 
 
  | 
37 |  | -# GCN-LABEL: name: ds_read_b32_a_v  | 
38 |  | -# GCN: agpr_32 = DS_READ_B32  | 
39 |  | -# GCN: vgpr_32 = DS_READ_B32  | 
 | 47 | +---  | 
40 | 48 | name: ds_read_b32_a_v  | 
41 | 49 | body:             |  | 
42 | 50 |   bb.0:  | 
43 | 51 | 
  | 
 | 52 | +    ; GCN-LABEL: name: ds_read_b32_a_v  | 
 | 53 | +    ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF  | 
 | 54 | +    ; GCN-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:agpr_32 = DS_READ_B32_gfx9 [[DEF]], 8, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`, addrspace 3)  | 
 | 55 | +    ; GCN-NEXT: [[DS_READ_B32_gfx9_1:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[DEF]], 0, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`, addrspace 3)  | 
44 | 56 |     %0:vgpr_32 = IMPLICIT_DEF  | 
45 | 57 |     %1:agpr_32 = DS_READ_B32_gfx9 %0, 8, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`)  | 
46 | 58 |     %2:vgpr_32 = DS_READ_B32_gfx9 %0, 0, 0, implicit $exec :: (load (s32) from `ptr addrspace(3) poison`)  | 
47 | 59 | ...  | 
48 | 60 | 
 
  | 
49 |  | -# GCN-LABEL: name: ds_write_b32_v_v  | 
50 |  | -# GCN: DS_WRITE2_B32_gfx9 %0, undef %1:vgpr_32, undef %2:vgpr_32  | 
 | 61 | +---  | 
51 | 62 | name: ds_write_b32_v_v  | 
52 | 63 | body:             |  | 
53 | 64 |   bb.0:  | 
54 | 65 | 
  | 
 | 66 | +    ; GCN-LABEL: name: ds_write_b32_v_v  | 
 | 67 | +    ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF  | 
 | 68 | +    ; GCN-NEXT: DS_WRITE2_B32_gfx9 [[DEF]], undef %1:vgpr_32, undef %2:vgpr_32, 0, 2, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`, addrspace 3)  | 
55 | 69 |     %0:vgpr_32 = IMPLICIT_DEF  | 
56 | 70 |     DS_WRITE_B32_gfx9 %0, undef %1:vgpr_32, 0, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`)  | 
57 | 71 |     DS_WRITE_B32_gfx9 %0, undef %2:vgpr_32, 8, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`)  | 
58 | 72 | ...  | 
59 | 73 | 
 
  | 
60 |  | -# GCN-LABEL: name: ds_write_b32_a_a  | 
61 |  | -# GCN: DS_WRITE_B32_gfx9 %0, undef %1:agpr_32  | 
62 |  | -# GCN: DS_WRITE_B32_gfx9 %0, undef %2:agpr_32  | 
 | 74 | +---  | 
63 | 75 | name: ds_write_b32_a_a  | 
64 | 76 | body:             |  | 
65 | 77 |   bb.0:  | 
66 | 78 | 
  | 
 | 79 | +    ; GCN-LABEL: name: ds_write_b32_a_a  | 
 | 80 | +    ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF  | 
 | 81 | +    ; GCN-NEXT: DS_WRITE_B32_gfx9 [[DEF]], undef %1:agpr_32, 0, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`, addrspace 3)  | 
 | 82 | +    ; GCN-NEXT: DS_WRITE_B32_gfx9 [[DEF]], undef %2:agpr_32, 8, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`, addrspace 3)  | 
67 | 83 |     %0:vgpr_32 = IMPLICIT_DEF  | 
68 | 84 |     DS_WRITE_B32_gfx9 %0, undef %1:agpr_32, 0, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`)  | 
69 | 85 |     DS_WRITE_B32_gfx9 %0, undef %2:agpr_32, 8, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`)  | 
70 | 86 | ...  | 
71 | 87 | 
 
  | 
72 |  | -# GCN-LABEL: name: ds_write_b32_v_a  | 
73 |  | -# GCN: DS_WRITE_B32_gfx9 %0, undef %1:vgpr_32  | 
74 |  | -# GCN: DS_WRITE_B32_gfx9 %0, undef %2:agpr_32  | 
 | 88 | +---  | 
75 | 89 | name: ds_write_b32_v_a  | 
76 | 90 | body:             |  | 
77 | 91 |   bb.0:  | 
78 | 92 | 
  | 
 | 93 | +    ; GCN-LABEL: name: ds_write_b32_v_a  | 
 | 94 | +    ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF  | 
 | 95 | +    ; GCN-NEXT: DS_WRITE_B32_gfx9 [[DEF]], undef %1:vgpr_32, 0, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`, addrspace 3)  | 
 | 96 | +    ; GCN-NEXT: DS_WRITE_B32_gfx9 [[DEF]], undef %2:agpr_32, 8, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`, addrspace 3)  | 
79 | 97 |     %0:vgpr_32 = IMPLICIT_DEF  | 
80 | 98 |     DS_WRITE_B32_gfx9 %0, undef %1:vgpr_32, 0, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`)  | 
81 | 99 |     DS_WRITE_B32_gfx9 %0, undef %2:agpr_32, 8, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`)  | 
82 | 100 | ...  | 
83 | 101 | 
 
  | 
84 |  | -# GCN-LABEL: name: ds_write_b32_a_v  | 
85 |  | -# GCN: DS_WRITE_B32_gfx9 %0, undef %1:agpr_32  | 
86 |  | -# GCN: DS_WRITE_B32_gfx9 %0, undef %2:vgpr_32  | 
 | 102 | +---  | 
87 | 103 | name: ds_write_b32_a_v  | 
88 | 104 | body:             |  | 
89 | 105 |   bb.0:  | 
90 | 106 | 
  | 
 | 107 | +    ; GCN-LABEL: name: ds_write_b32_a_v  | 
 | 108 | +    ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF  | 
 | 109 | +    ; GCN-NEXT: DS_WRITE_B32_gfx9 [[DEF]], undef %1:agpr_32, 0, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`, addrspace 3)  | 
 | 110 | +    ; GCN-NEXT: DS_WRITE_B32_gfx9 [[DEF]], undef %2:vgpr_32, 8, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`, addrspace 3)  | 
91 | 111 |     %0:vgpr_32 = IMPLICIT_DEF  | 
92 | 112 |     DS_WRITE_B32_gfx9 %0, undef %1:agpr_32, 0, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`)  | 
93 | 113 |     DS_WRITE_B32_gfx9 %0, undef %2:vgpr_32, 8, 0, implicit $exec :: (store (s32) into `ptr addrspace(3) poison`)  | 
 | 
0 commit comments