@@ -21,20 +21,49 @@ define i64 @inst_to_return_has_different_type_but_no_func_call_use(ptr %arg) {
21
21
ret i64 0
22
22
}
23
23
24
- ; INTERESTING-LABEL: @callsite_different_type_unused_0(
25
- ; RESULT-LABEL: define i64 @inst_to_return_has_different_type_but_call_result_unused(
26
- ; RESULT-NEXT: %load = load i32, ptr %arg
27
- ; RESULT-NEXT: store i32 %load, ptr @gv
28
- ; RESULT-NEXT: ret i64 0
24
+ ; INTERESTING-LABEL: @multiple_returns_wrong_return_type_no_callers(
25
+ ; RESULT-LABEL: define i32 @multiple_returns_wrong_return_type_no_callers(
26
+
27
+ ; RESULT: bb0:
28
+ ; RESULT-NEXT: %load0 = load i32,
29
+ ; RESULT-NEXT: ret i32 %load0
30
+
31
+ ; RESULT: bb1:
32
+ ; RESULT-NEXT: store i32 8, ptr null
33
+ ; RESULT-NEXT: ret i32 0
34
+ define i64 @multiple_returns_wrong_return_type_no_callers (ptr %arg , i1 %cond , i64 %arg2 ) {
35
+ entry:
36
+ br i1 %cond , label %bb0 , label %bb1
37
+
38
+ bb0:
39
+ %load0 = load i32 , ptr %arg
40
+ store i32 %load0 , ptr @gv
41
+ ret i64 234
42
+
43
+ bb1:
44
+ store i32 8 , ptr null
45
+ ret i64 %arg2
46
+
47
+ bb2:
48
+ ret i64 34
49
+ }
50
+
51
+ ; INTERESTING-LABEL: define {{.+}} @callsite_different_type_unused_0(
52
+
53
+ ; RESULT-LABEL: define i64 @callsite_different_type_unused_0(ptr %arg) {
54
+ ; RESULT-NEXT: %unused0 = call i64 @inst_to_return_has_different_type_but_call_result_unused(ptr %arg)
55
+ ; RESULT-NEXT: ret i64 %unused0
29
56
define void @callsite_different_type_unused_0 (ptr %arg ) {
30
57
%unused0 = call i64 @inst_to_return_has_different_type_but_call_result_unused (ptr %arg )
31
58
%unused1 = call i64 @inst_to_return_has_different_type_but_call_result_unused (ptr null )
32
59
ret void
33
60
}
34
61
35
62
; TODO: Could rewrite this return from i64 to i32 since the callsite is unused.
36
- ; INTERESTING-LABEL: @inst_to_return_has_different_type_but_call_result_unused(
63
+ ; INTERESTING-LABEL: define {{.+}} @inst_to_return_has_different_type_but_call_result_unused(
37
64
; RESULT-LABEL: define i64 @inst_to_return_has_different_type_but_call_result_unused(
65
+ ; RESULT-NEXT: %load = load i32, ptr %arg
66
+ ; RESULT-NEXT: store i32 %load, ptr @gv
38
67
; RESULT: ret i64 0
39
68
define i64 @inst_to_return_has_different_type_but_call_result_unused (ptr %arg ) {
40
69
%load = load i32 , ptr %arg
0 commit comments