@@ -153,3 +153,36 @@ define range(i32 8, 256) <2 x i32> @preserve_compatible_return_range(ptr %arg, <
153
153
store i32 %load , ptr @gv
154
154
ret <2 x i32 > %arg1
155
155
}
156
+
157
+ ; INTERESTING-LABEL: @drop_incompatible_returned_param_attr_0(
158
+
159
+ ; RESULT-LABEL: define i32 @drop_incompatible_returned_param_attr_0(ptr %arg, ptr %arg1) {
160
+ ; RESULT-NEXT: %load = load i32, ptr %arg
161
+ ; RESULT-NEXT: ret i32 %load
162
+ define ptr @drop_incompatible_returned_param_attr_0 (ptr returned %arg , ptr %arg1 ) {
163
+ %load = load i32 , ptr %arg
164
+ store i32 %load , ptr @gv
165
+ ret ptr %arg
166
+ }
167
+
168
+ ; INTERESTING-LABEL: @drop_incompatible_returned_param_attr_1(
169
+
170
+ ; RESULT-LABEL: define i32 @drop_incompatible_returned_param_attr_1(ptr %arg, ptr %arg1) {
171
+ ; RESULT-NEXT: %load = load i32, ptr %arg
172
+ ; RESULT-NEXT: ret i32 %load
173
+ define ptr @drop_incompatible_returned_param_attr_1 (ptr %arg , ptr returned %arg1 ) {
174
+ %load = load i32 , ptr %arg
175
+ store i32 %load , ptr @gv
176
+ ret ptr %arg
177
+ }
178
+
179
+ ; INTERESTING-LABEL: @drop_incompatible_returned_param_attr_2
180
+
181
+ ; RESULT-LABEL: define ptr @drop_incompatible_returned_param_attr_2(ptr %arg, ptr %arg1) {
182
+ ; RESULT-NEXT: %load = load ptr, ptr %arg
183
+ ; RESULT-NEXT: ret ptr %load
184
+ define ptr @drop_incompatible_returned_param_attr_2 (ptr %arg , ptr returned %arg1 ) {
185
+ %load = load ptr , ptr %arg
186
+ store ptr %load , ptr @gv
187
+ ret ptr %arg1
188
+ }
0 commit comments