summaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/WebAssembly/implicit-def.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/WebAssembly/implicit-def.ll')
-rw-r--r--llvm/test/CodeGen/WebAssembly/implicit-def.ll36
1 files changed, 22 insertions, 14 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/implicit-def.ll b/llvm/test/CodeGen/WebAssembly/implicit-def.ll
index e08b198194ca..6f8f838458db 100644
--- a/llvm/test/CodeGen/WebAssembly/implicit-def.ll
+++ b/llvm/test/CodeGen/WebAssembly/implicit-def.ll
@@ -7,10 +7,12 @@ target triple = "wasm32-unknown-unknown"
; CONST_XXX instructions to provide an explicit push.
; CHECK-LABEL: implicit_def_i32:
-; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
-; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
-; CHECK: i32.const $push[[R:[0-9]+]]=, 0{{$}}
-; CHECK-NEXT: return $pop[[R]]{{$}}
+; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
+; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
+; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
+; CHECK-NOT: i32.const
+; CHECK: local.get $push[[R:[0-9]+]]=, 0{{$}}
+; CHECK: return $pop[[R]]{{$}}
define i32 @implicit_def_i32() {
br i1 undef, label %A, label %X
@@ -31,8 +33,10 @@ X: ; preds = %0, C
}
; CHECK-LABEL: implicit_def_i64:
-; CHECK: i64.const $push[[R:[0-9]+]]=, 0{{$}}
-; CHECK-NEXT: return $pop[[R]]{{$}}
+; CHECK: i64.const $push{{[0-9]+}}=, 0{{$}}
+; CHECK-NOT: i64.const
+; CHECK: local.get $push[[R:[0-9]+]]=, 0{{$}}
+; CHECK: return $pop[[R]]{{$}}
define i64 @implicit_def_i64() {
br i1 undef, label %A, label %X
@@ -53,8 +57,10 @@ X: ; preds = %0, C
}
; CHECK-LABEL: implicit_def_f32:
-; CHECK: f32.const $push[[R:[0-9]+]]=, 0x0p0{{$}}
-; CHECK-NEXT: return $pop[[R]]{{$}}
+; CHECK: f32.const $push{{[0-9]+}}=, 0x0p0{{$}}
+; CHECK-NOT: f32.const
+; CHECK: local.get $push[[R:[0-9]+]]=, 0{{$}}
+; CHECK: return $pop[[R]]{{$}}
define float @implicit_def_f32() {
br i1 undef, label %A, label %X
@@ -75,8 +81,10 @@ X: ; preds = %0, C
}
; CHECK-LABEL: implicit_def_f64:
-; CHECK: f64.const $push[[R:[0-9]+]]=, 0x0p0{{$}}
-; CHECK-NEXT: return $pop[[R]]{{$}}
+; CHECK: f64.const $push{{[0-9]+}}=, 0x0p0{{$}}
+; CHECK-NOT: f64.const
+; CHECK: local.get $push[[R:[0-9]+]]=, 0{{$}}
+; CHECK: return $pop[[R]]{{$}}
define double @implicit_def_f64() {
br i1 undef, label %A, label %X
@@ -97,8 +105,10 @@ X: ; preds = %0, C
}
; CHECK-LABEL: implicit_def_v4i32:
-; CHECK: v128.const $push[[R:[0-9]+]]=, 0, 0{{$}}
-; CHECK-NEXT: return $pop[[R]]{{$}}
+; CHECK: v128.const $push{{[0-9]+}}=, 0, 0, 0, 0{{$}}
+; CHECK-NOT: v128.const
+; CHECK: local.get $push[[R:[0-9]+]]=, 0{{$}}
+; CHECK: return $pop[[R]]{{$}}
define <4 x i32> @implicit_def_v4i32() {
br i1 undef, label %A, label %X
@@ -117,5 +127,3 @@ X: ; preds = %0, C
%i = phi <4 x i32> [ <i32 1, i32 1, i32 1, i32 1>, %0 ], [ %h, %C ]
ret <4 x i32> %i
}
-;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
-; CHECK: {{.*}}