@@ -7,10 +7,12 @@ target triple = "wasm32-unknown-unknown"
77; CONST_XXX instructions to provide an explicit push.
88
99; CHECK-LABEL: implicit_def_i32:
10- ; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
11- ; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
12- ; CHECK: i32.const $push[[R:[0-9]+]]=, 0{{$}}
13- ; CHECK-NEXT: return $pop[[R]]{{$}}
10+ ; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
11+ ; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
12+ ; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
13+ ; CHECK-NOT: i32.const
14+ ; CHECK: local.get $push[[R:[0-9]+]]=, 0{{$}}
15+ ; CHECK: return $pop[[R]]{{$}}
1416define i32 @implicit_def_i32 () {
1517 br i1 undef , label %A , label %X
1618
@@ -31,8 +33,10 @@ X: ; preds = %0, C
3133}
3234
3335; CHECK-LABEL: implicit_def_i64:
34- ; CHECK: i64.const $push[[R:[0-9]+]]=, 0{{$}}
35- ; CHECK-NEXT: return $pop[[R]]{{$}}
36+ ; CHECK: i64.const $push{{[0-9]+}}=, 0{{$}}
37+ ; CHECK-NOT: i64.const
38+ ; CHECK: local.get $push[[R:[0-9]+]]=, 0{{$}}
39+ ; CHECK: return $pop[[R]]{{$}}
3640define i64 @implicit_def_i64 () {
3741 br i1 undef , label %A , label %X
3842
@@ -53,8 +57,10 @@ X: ; preds = %0, C
5357}
5458
5559; CHECK-LABEL: implicit_def_f32:
56- ; CHECK: f32.const $push[[R:[0-9]+]]=, 0x0p0{{$}}
57- ; CHECK-NEXT: return $pop[[R]]{{$}}
60+ ; CHECK: f32.const $push{{[0-9]+}}=, 0x0p0{{$}}
61+ ; CHECK-NOT: f32.const
62+ ; CHECK: local.get $push[[R:[0-9]+]]=, 0{{$}}
63+ ; CHECK: return $pop[[R]]{{$}}
5864define float @implicit_def_f32 () {
5965 br i1 undef , label %A , label %X
6066
@@ -75,8 +81,10 @@ X: ; preds = %0, C
7581}
7682
7783; CHECK-LABEL: implicit_def_f64:
78- ; CHECK: f64.const $push[[R:[0-9]+]]=, 0x0p0{{$}}
79- ; CHECK-NEXT: return $pop[[R]]{{$}}
84+ ; CHECK: f64.const $push{{[0-9]+}}=, 0x0p0{{$}}
85+ ; CHECK-NOT: f64.const
86+ ; CHECK: local.get $push[[R:[0-9]+]]=, 0{{$}}
87+ ; CHECK: return $pop[[R]]{{$}}
8088define double @implicit_def_f64 () {
8189 br i1 undef , label %A , label %X
8290
@@ -97,8 +105,10 @@ X: ; preds = %0, C
97105}
98106
99107; CHECK-LABEL: implicit_def_v4i32:
100- ; CHECK: v128.const $push[[R:[0-9]+]]=, 0, 0{{$}}
101- ; CHECK-NEXT: return $pop[[R]]{{$}}
108+ ; CHECK: v128.const $push{{[0-9]+}}=, 0, 0, 0, 0{{$}}
109+ ; CHECK-NOT: v128.const
110+ ; CHECK: local.get $push[[R:[0-9]+]]=, 0{{$}}
111+ ; CHECK: return $pop[[R]]{{$}}
102112define <4 x i32 > @implicit_def_v4i32 () {
103113 br i1 undef , label %A , label %X
104114
@@ -117,5 +127,3 @@ X: ; preds = %0, C
117127 %i = phi <4 x i32 > [ <i32 1 , i32 1 , i32 1 , i32 1 >, %0 ], [ %h , %C ]
118128 ret <4 x i32 > %i
119129}
120- ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
121- ; CHECK: {{.*}}
0 commit comments