@@ -18,7 +18,7 @@ body: |
18
18
; CHECK-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[DEF]]
19
19
; CHECK-NEXT: [[V_FMA_MIXLO_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_FMA_MIXLO_F16 8, [[COPY2]], 8, [[COPY1]], 0, [[COPY]], 1, [[COPY3]], 0, 0, implicit $mode, implicit $exec
20
20
; CHECK-NEXT: [[COPY4:%[0-9]+]]:vgpr_16 = COPY [[V_FMA_MIXLO_F16_]]
21
- ; CHECK-NEXT: $vgpr0 = COPY [[COPY4 ]]
21
+ ; CHECK-NEXT: $vgpr0 = COPY [[V_FMA_MIXLO_F16_ ]]
22
22
; CHECK-NEXT: S_ENDPGM 0, implicit $vgpr0
23
23
%10:vgpr_32 = COPY $vgpr2
24
24
%9:vgpr_32 = COPY $vgpr1
@@ -31,3 +31,91 @@ body: |
31
31
$vgpr0 = COPY %14:vgpr_16
32
32
S_ENDPGM 0, implicit $vgpr0
33
33
...
34
+
35
+ ---
36
+ name : fold_16bit_subreg_clamp
37
+ tracksRegLiveness : true
38
+ registers :
39
+ body : |
40
+ bb.0.entry:
41
+ liveins: $vgpr0, $vgpr1, $vgpr2
42
+ ; CHECK-LABEL: name: fold_16bit_subreg_clamp
43
+ ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2
44
+ ; CHECK-NEXT: {{ $}}
45
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr2
46
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
47
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr0
48
+ ; CHECK-NEXT: [[DEF:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
49
+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[DEF]]
50
+ ; CHECK-NEXT: [[V_MAX_F16_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_MAX_F16_t16_e64 0, [[COPY3]].lo16, 0, [[COPY3]].lo16, -1, 0, 0, implicit $mode, implicit $exec
51
+ ; CHECK-NEXT: $vgpr0 = COPY [[V_MAX_F16_t16_e64_]]
52
+ ; CHECK-NEXT: S_ENDPGM 0, implicit $vgpr0
53
+ %10:vgpr_32 = COPY $vgpr2
54
+ %9:vgpr_32 = COPY $vgpr1
55
+ %8:vgpr_32 = COPY $vgpr0
56
+ %12:sreg_32 = IMPLICIT_DEF
57
+ %13:vgpr_32 = COPY %12:sreg_32
58
+ %15:vgpr_16 = COPY %13.lo16:vgpr_32
59
+ %14:vgpr_16 = nofpexcept V_MAX_F16_t16_e64 0, %15:vgpr_16, 0, %15:vgpr_16, -1, 0, 0, implicit $mode, implicit $exec
60
+ $vgpr0 = COPY %14:vgpr_16
61
+ S_ENDPGM 0, implicit $vgpr0
62
+ ...
63
+
64
+ ---
65
+ name : fold_16bit_phyreg_clamp
66
+ tracksRegLiveness : true
67
+ registers :
68
+ body : |
69
+ bb.0.entry:
70
+ liveins: $vgpr0, $vgpr1, $vgpr2
71
+ ; CHECK-LABEL: name: fold_16bit_phyreg_clamp
72
+ ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2
73
+ ; CHECK-NEXT: {{ $}}
74
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr2
75
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
76
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr0
77
+ ; CHECK-NEXT: [[DEF:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
78
+ ; CHECK-NEXT: $vgpr10_lo16 = COPY [[DEF]]
79
+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY $vgpr10_lo16
80
+ ; CHECK-NEXT: [[V_MAX_F16_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_MAX_F16_t16_e64 0, [[COPY3]], 0, [[COPY3]], -1, 0, 0, implicit $mode, implicit $exec
81
+ ; CHECK-NEXT: $vgpr0 = COPY [[V_MAX_F16_t16_e64_]]
82
+ ; CHECK-NEXT: S_ENDPGM 0, implicit $vgpr0
83
+ %10:vgpr_32 = COPY $vgpr2
84
+ %9:vgpr_32 = COPY $vgpr1
85
+ %8:vgpr_32 = COPY $vgpr0
86
+ %12:sreg_32 = IMPLICIT_DEF
87
+ $vgpr10_lo16 = COPY %12:sreg_32
88
+ %15:vgpr_16 = COPY $vgpr10_lo16
89
+ %14:vgpr_16 = nofpexcept V_MAX_F16_t16_e64 0, %15:vgpr_16, 0, %15:vgpr_16, -1, 0, 0, implicit $mode, implicit $exec
90
+ $vgpr0 = COPY %14:vgpr_16
91
+ S_ENDPGM 0, implicit $vgpr0
92
+ ...
93
+
94
+ ---
95
+ name : fold_16bit_undef_clamp
96
+ tracksRegLiveness : true
97
+ registers :
98
+ body : |
99
+ bb.0.entry:
100
+ liveins: $vgpr0, $vgpr1, $vgpr2
101
+ ; CHECK-LABEL: name: fold_16bit_undef_clamp
102
+ ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2
103
+ ; CHECK-NEXT: {{ $}}
104
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr2
105
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
106
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr0
107
+ ; CHECK-NEXT: [[DEF:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
108
+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[DEF]]
109
+ ; CHECK-NEXT: [[V_MAX_F16_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_MAX_F16_t16_e64 0, [[COPY3]].lo16, 0, [[COPY3]].lo16, -1, 0, 0, implicit $mode, implicit $exec
110
+ ; CHECK-NEXT: $vgpr0 = COPY [[V_MAX_F16_t16_e64_]]
111
+ ; CHECK-NEXT: S_ENDPGM 0, implicit $vgpr0
112
+ %10:vgpr_32 = COPY $vgpr2
113
+ %9:vgpr_32 = COPY $vgpr1
114
+ %8:vgpr_32 = COPY $vgpr0
115
+ %12:sreg_32 = IMPLICIT_DEF
116
+ %13:vgpr_32 = COPY %12:sreg_32
117
+ %15:vgpr_16 = COPY %13.lo16:vgpr_32
118
+ %14:vgpr_16 = nofpexcept V_MAX_F16_t16_e64 0, %15:vgpr_16, 0, %15:vgpr_16, -1, 0, 0, implicit $mode, implicit $exec
119
+ $vgpr0 = COPY %14:vgpr_16
120
+ S_ENDPGM 0, implicit $vgpr0
121
+ ...
0 commit comments