11# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2- # RUN: llc %s -mtriple=amdgcn -mcpu=gfx900 -run-pass=si-peephole-sdwa -o - | FileCheck -check-prefix=gfx9 %s
2+ # RUN: llc %s -mtriple=amdgcn -mcpu=gfx900 -run-pass=si-peephole-sdwa -o - | FileCheck %s
33
44---
55name : change-compare-to-vopc # carry-in def is a comparison that can be changed to VOPC
@@ -8,17 +8,17 @@ body: |
88 bb.0:
99 liveins: $vgpr0
1010
11- ; gfx9 -LABEL: name: change-compare-to-vopc
12- ; gfx9 : liveins: $vgpr0
13- ; gfx9 -NEXT: {{ $}}
14- ; gfx9 -NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
15- ; gfx9 -NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
16- ; gfx9 -NEXT: $vcc = V_CMP_EQ_U32_e64 undef [[DEF]], 1, implicit $exec
17- ; gfx9 -NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 16, undef [[DEF1]], implicit $exec
18- ; gfx9 -NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
19- ; gfx9 -NEXT: [[V_CNDMASK_B32_sdwa:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_sdwa 0, [[V_MOV_B32_e32_]], 0, undef [[DEF1]], 0, 6, 0, 6, 5, implicit $vcc, implicit $exec
20- ; gfx9 -NEXT: $vgpr0 = COPY [[V_CNDMASK_B32_sdwa]]
21- ; gfx9 -NEXT: SI_RETURN implicit $vgpr0
11+ ; CHECK -LABEL: name: change-compare-to-vopc
12+ ; CHECK : liveins: $vgpr0
13+ ; CHECK -NEXT: {{ $}}
14+ ; CHECK -NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
15+ ; CHECK -NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
16+ ; CHECK -NEXT: $vcc = V_CMP_EQ_U32_e64 undef [[DEF]], 1, implicit $exec
17+ ; CHECK -NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 16, undef [[DEF1]], implicit $exec
18+ ; CHECK -NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
19+ ; CHECK -NEXT: [[V_CNDMASK_B32_sdwa:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_sdwa 0, [[V_MOV_B32_e32_]], 0, undef [[DEF1]], 0, 6, 0, 6, 5, implicit $vcc, implicit $exec
20+ ; CHECK -NEXT: $vgpr0 = COPY [[V_CNDMASK_B32_sdwa]]
21+ ; CHECK -NEXT: SI_RETURN implicit $vgpr0
2222 %0:vgpr_32 = IMPLICIT_DEF
2323 %1:vgpr_32 = IMPLICIT_DEF
2424 %2:sreg_64_xexec = V_CMP_EQ_U32_e64 undef %0, 1, implicit $exec
@@ -36,18 +36,18 @@ body: |
3636 bb.0:
3737 liveins: $vgpr0
3838
39- ; gfx9 -LABEL: name: carry-copy-non-compare
40- ; gfx9 : liveins: $vgpr0
41- ; gfx9 -NEXT: {{ $}}
42- ; gfx9 -NEXT: [[DEF:%[0-9]+]]:sreg_64_xexec = IMPLICIT_DEF
43- ; gfx9 -NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
44- ; gfx9 -NEXT: [[V_PK_MAX_F16_:%[0-9]+]]:vgpr_32 = V_PK_MAX_F16 8, undef [[DEF1]], 8, undef [[DEF1]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec
45- ; gfx9 -NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 16, undef [[V_PK_MAX_F16_]], implicit $exec
46- ; gfx9 -NEXT: $vcc = COPY killed undef [[DEF]]
47- ; gfx9 -NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
48- ; gfx9 -NEXT: [[V_CNDMASK_B32_sdwa:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_sdwa 0, [[V_MOV_B32_e32_]], 0, undef [[V_PK_MAX_F16_]], 0, 6, 0, 6, 5, implicit $vcc, implicit $exec
49- ; gfx9 -NEXT: $vgpr0 = COPY [[V_CNDMASK_B32_sdwa]]
50- ; gfx9 -NEXT: SI_RETURN implicit $vgpr0
39+ ; CHECK -LABEL: name: carry-copy-non-compare
40+ ; CHECK : liveins: $vgpr0
41+ ; CHECK -NEXT: {{ $}}
42+ ; CHECK -NEXT: [[DEF:%[0-9]+]]:sreg_64_xexec = IMPLICIT_DEF
43+ ; CHECK -NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
44+ ; CHECK -NEXT: [[V_PK_MAX_F16_:%[0-9]+]]:vgpr_32 = V_PK_MAX_F16 8, undef [[DEF1]], 8, undef [[DEF1]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec
45+ ; CHECK -NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 16, undef [[V_PK_MAX_F16_]], implicit $exec
46+ ; CHECK -NEXT: $vcc = COPY killed undef [[DEF]]
47+ ; CHECK -NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
48+ ; CHECK -NEXT: [[V_CNDMASK_B32_sdwa:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_sdwa 0, [[V_MOV_B32_e32_]], 0, undef [[V_PK_MAX_F16_]], 0, 6, 0, 6, 5, implicit $vcc, implicit $exec
49+ ; CHECK -NEXT: $vgpr0 = COPY [[V_CNDMASK_B32_sdwa]]
50+ ; CHECK -NEXT: SI_RETURN implicit $vgpr0
5151 %0:sreg_64_xexec = IMPLICIT_DEF
5252 %1:vgpr_32 = IMPLICIT_DEF
5353 %2:vgpr_32 = V_PK_MAX_F16 8, undef %1, 8, undef %1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec
@@ -65,19 +65,19 @@ body: |
6565 bb.0:
6666 liveins: $vgpr0, $vgpr1
6767
68- ; gfx9 -LABEL: name: carry-copy-multiuse
69- ; gfx9 : liveins: $vgpr0, $vgpr1
70- ; gfx9 -NEXT: {{ $}}
71- ; gfx9 -NEXT: [[DEF:%[0-9]+]]:sreg_64_xexec = IMPLICIT_DEF
72- ; gfx9 -NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
73- ; gfx9 -NEXT: [[V_PK_MAX_F16_:%[0-9]+]]:vgpr_32 = V_PK_MAX_F16 8, undef [[DEF1]], 8, undef [[DEF1]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec
74- ; gfx9 -NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 16, [[V_PK_MAX_F16_]], implicit $exec
75- ; gfx9 -NEXT: $vcc = COPY killed undef [[DEF]]
76- ; gfx9 -NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
77- ; gfx9 -NEXT: [[V_CNDMASK_B32_sdwa:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_sdwa 0, [[V_MOV_B32_e32_]], 0, [[V_PK_MAX_F16_]], 0, 6, 0, 6, 5, implicit $vcc, implicit $exec
78- ; gfx9 -NEXT: $vgpr0 = COPY [[V_CNDMASK_B32_sdwa]]
79- ; gfx9 -NEXT: $vgpr1 = COPY [[DEF]]
80- ; gfx9 -NEXT: SI_RETURN implicit $vgpr0
68+ ; CHECK -LABEL: name: carry-copy-multiuse
69+ ; CHECK : liveins: $vgpr0, $vgpr1
70+ ; CHECK -NEXT: {{ $}}
71+ ; CHECK -NEXT: [[DEF:%[0-9]+]]:sreg_64_xexec = IMPLICIT_DEF
72+ ; CHECK -NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
73+ ; CHECK -NEXT: [[V_PK_MAX_F16_:%[0-9]+]]:vgpr_32 = V_PK_MAX_F16 8, undef [[DEF1]], 8, undef [[DEF1]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec
74+ ; CHECK -NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 16, [[V_PK_MAX_F16_]], implicit $exec
75+ ; CHECK -NEXT: $vcc = COPY killed undef [[DEF]]
76+ ; CHECK -NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
77+ ; CHECK -NEXT: [[V_CNDMASK_B32_sdwa:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_sdwa 0, [[V_MOV_B32_e32_]], 0, [[V_PK_MAX_F16_]], 0, 6, 0, 6, 5, implicit $vcc, implicit $exec
78+ ; CHECK -NEXT: $vgpr0 = COPY [[V_CNDMASK_B32_sdwa]]
79+ ; CHECK -NEXT: $vgpr1 = COPY [[DEF]]
80+ ; CHECK -NEXT: SI_RETURN implicit $vgpr0
8181 %0:sreg_64_xexec = IMPLICIT_DEF
8282 %1:vgpr_32 = IMPLICIT_DEF
8383 %2:vgpr_32 = V_PK_MAX_F16 8, undef %1, 8, undef %1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec
@@ -96,18 +96,18 @@ body: |
9696 bb.0:
9797 liveins: $vgpr0
9898
99- ; gfx9 -LABEL: name: live-vcc
100- ; gfx9 : liveins: $vgpr0
101- ; gfx9 -NEXT: {{ $}}
102- ; gfx9 -NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
103- ; gfx9 -NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
104- ; gfx9 -NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 undef [[DEF]], 1, implicit $exec
105- ; gfx9 -NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 16, undef [[DEF1]], implicit $exec
106- ; gfx9 -NEXT: V_CMP_EQ_U32_e32 1, undef [[DEF1]], implicit-def $vcc, implicit $exec
107- ; gfx9 -NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, [[V_LSHRREV_B32_e64_]], [[V_CMP_EQ_U32_e64_]], implicit $exec
108- ; gfx9 -NEXT: [[V_CNDMASK_B32_e32_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e32 killed [[V_LSHRREV_B32_e64_]], killed [[V_LSHRREV_B32_e64_]], implicit $vcc, implicit $exec
109- ; gfx9 -NEXT: $vgpr0 = COPY [[V_CNDMASK_B32_e64_]]
110- ; gfx9 -NEXT: SI_RETURN implicit $vgpr0
99+ ; CHECK -LABEL: name: live-vcc
100+ ; CHECK : liveins: $vgpr0
101+ ; CHECK -NEXT: {{ $}}
102+ ; CHECK -NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
103+ ; CHECK -NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
104+ ; CHECK -NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 undef [[DEF]], 1, implicit $exec
105+ ; CHECK -NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 16, undef [[DEF1]], implicit $exec
106+ ; CHECK -NEXT: V_CMP_EQ_U32_e32 1, undef [[DEF1]], implicit-def $vcc, implicit $exec
107+ ; CHECK -NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, [[V_LSHRREV_B32_e64_]], [[V_CMP_EQ_U32_e64_]], implicit $exec
108+ ; CHECK -NEXT: [[V_CNDMASK_B32_e32_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e32 killed [[V_LSHRREV_B32_e64_]], killed [[V_LSHRREV_B32_e64_]], implicit $vcc, implicit $exec
109+ ; CHECK -NEXT: $vgpr0 = COPY [[V_CNDMASK_B32_e64_]]
110+ ; CHECK -NEXT: SI_RETURN implicit $vgpr0
111111 %0:vgpr_32 = IMPLICIT_DEF
112112 %2:vgpr_32 = IMPLICIT_DEF
113113 %3:sreg_64_xexec = V_CMP_EQ_U32_e64 undef %0, 1, implicit $exec
@@ -127,16 +127,16 @@ body: |
127127 bb.0:
128128 liveins: $vgpr0
129129
130- ; gfx9 -LABEL: name: cannot-shrink-source-mods
131- ; gfx9 : liveins: $vgpr0
132- ; gfx9 -NEXT: {{ $}}
133- ; gfx9 -NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
134- ; gfx9 -NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
135- ; gfx9 -NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 undef [[DEF]], 0, implicit $exec
136- ; gfx9 -NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 16, undef [[DEF1]], implicit $exec
137- ; gfx9 -NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 1, 0, 0, [[V_LSHRREV_B32_e64_]], killed [[V_CMP_EQ_U32_e64_]], implicit $exec
138- ; gfx9 -NEXT: $vgpr0 = COPY [[V_CNDMASK_B32_e64_]]
139- ; gfx9 -NEXT: SI_RETURN implicit $vgpr0
130+ ; CHECK -LABEL: name: cannot-shrink-source-mods
131+ ; CHECK : liveins: $vgpr0
132+ ; CHECK -NEXT: {{ $}}
133+ ; CHECK -NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
134+ ; CHECK -NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
135+ ; CHECK -NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 undef [[DEF]], 0, implicit $exec
136+ ; CHECK -NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 16, undef [[DEF1]], implicit $exec
137+ ; CHECK -NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 1, 0, 0, [[V_LSHRREV_B32_e64_]], killed [[V_CMP_EQ_U32_e64_]], implicit $exec
138+ ; CHECK -NEXT: $vgpr0 = COPY [[V_CNDMASK_B32_e64_]]
139+ ; CHECK -NEXT: SI_RETURN implicit $vgpr0
140140 %0:vgpr_32 = IMPLICIT_DEF
141141 %1:vgpr_32 = IMPLICIT_DEF
142142 %2:sreg_64_xexec = V_CMP_EQ_U32_e64 undef %0, 0, implicit $exec
@@ -156,14 +156,14 @@ body: |
156156 bb.0:
157157 liveins: $vgpr0
158158
159- ; gfx9 -LABEL: name: missing-carry-def
160- ; gfx9 : liveins: $vgpr0
161- ; gfx9 -NEXT: {{ $}}
162- ; gfx9 -NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
163- ; gfx9 -NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 16, undef [[DEF]], implicit $exec
164- ; gfx9 -NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, [[V_LSHRREV_B32_e64_]], undef %0:sreg_64_xexec, implicit $exec
165- ; gfx9 -NEXT: $vgpr0 = COPY [[V_CNDMASK_B32_e64_]]
166- ; gfx9 -NEXT: SI_RETURN implicit $vgpr0
159+ ; CHECK -LABEL: name: missing-carry-def
160+ ; CHECK : liveins: $vgpr0
161+ ; CHECK -NEXT: {{ $}}
162+ ; CHECK -NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
163+ ; CHECK -NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 16, undef [[DEF]], implicit $exec
164+ ; CHECK -NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, [[V_LSHRREV_B32_e64_]], undef %0:sreg_64_xexec, implicit $exec
165+ ; CHECK -NEXT: $vgpr0 = COPY [[V_CNDMASK_B32_e64_]]
166+ ; CHECK -NEXT: SI_RETURN implicit $vgpr0
167167 %1:vgpr_32 = IMPLICIT_DEF
168168 %2:vgpr_32 = V_LSHRREV_B32_e64 16, undef %1, implicit $exec
169169 %3:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, %2, undef %0, implicit $exec
0 commit comments