@@ -153,3 +153,36 @@ define range(i32 8, 256) <2 x i32> @preserve_compatible_return_range(ptr %arg, <
153153 store i32 %load , ptr @gv
154154 ret <2 x i32 > %arg1
155155}
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