diff options
Diffstat (limited to 'llvm/test/CodeGen/WebAssembly/atomic-rmw.ll')
-rw-r--r-- | llvm/test/CodeGen/WebAssembly/atomic-rmw.ll | 192 |
1 files changed, 96 insertions, 96 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/atomic-rmw.ll b/llvm/test/CodeGen/WebAssembly/atomic-rmw.ll index f0983e370d9..d4e66801347 100644 --- a/llvm/test/CodeGen/WebAssembly/atomic-rmw.ll +++ b/llvm/test/CodeGen/WebAssembly/atomic-rmw.ll @@ -11,7 +11,7 @@ target triple = "wasm32-unknown-unknown" ;===---------------------------------------------------------------------------- ; CHECK-LABEL: add_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype add_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw.add $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @add_i32(i32* %p, i32 %v) { @@ -20,7 +20,7 @@ define i32 @add_i32(i32* %p, i32 %v) { } ; CHECK-LABEL: sub_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype sub_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw.sub $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @sub_i32(i32* %p, i32 %v) { @@ -29,7 +29,7 @@ define i32 @sub_i32(i32* %p, i32 %v) { } ; CHECK-LABEL: and_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype and_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw.and $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @and_i32(i32* %p, i32 %v) { @@ -38,7 +38,7 @@ define i32 @and_i32(i32* %p, i32 %v) { } ; CHECK-LABEL: or_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype or_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw.or $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @or_i32(i32* %p, i32 %v) { @@ -47,7 +47,7 @@ define i32 @or_i32(i32* %p, i32 %v) { } ; CHECK-LABEL: xor_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype xor_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw.xor $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @xor_i32(i32* %p, i32 %v) { @@ -56,7 +56,7 @@ define i32 @xor_i32(i32* %p, i32 %v) { } ; CHECK-LABEL: xchg_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype xchg_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw.xchg $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @xchg_i32(i32* %p, i32 %v) { @@ -65,7 +65,7 @@ define i32 @xchg_i32(i32* %p, i32 %v) { } ; CHECK-LABEL: cmpxchg_i32_loaded_value: -; CHECK-NEXT: .param i32, i32, i32{{$}} +; CHECK-NEXT: .functype cmpxchg_i32_loaded_value (i32, i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @cmpxchg_i32_loaded_value(i32* %p, i32 %exp, i32 %new) { @@ -75,7 +75,7 @@ define i32 @cmpxchg_i32_loaded_value(i32* %p, i32 %exp, i32 %new) { } ; CHECK-LABEL: cmpxchg_i32_success: -; CHECK-NEXT: .param i32, i32, i32{{$}} +; CHECK-NEXT: .functype cmpxchg_i32_success (i32, i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: i32.eq $push1=, $pop0, $1{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -142,7 +142,7 @@ define i32 @umin_i32(i32* %p, i32 %v) { ;===---------------------------------------------------------------------------- ; CHECK-LABEL: add_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype add_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw.add $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @add_i64(i64* %p, i64 %v) { @@ -151,7 +151,7 @@ define i64 @add_i64(i64* %p, i64 %v) { } ; CHECK-LABEL: sub_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype sub_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw.sub $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @sub_i64(i64* %p, i64 %v) { @@ -160,7 +160,7 @@ define i64 @sub_i64(i64* %p, i64 %v) { } ; CHECK-LABEL: and_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype and_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw.and $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @and_i64(i64* %p, i64 %v) { @@ -169,7 +169,7 @@ define i64 @and_i64(i64* %p, i64 %v) { } ; CHECK-LABEL: or_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype or_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw.or $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @or_i64(i64* %p, i64 %v) { @@ -178,7 +178,7 @@ define i64 @or_i64(i64* %p, i64 %v) { } ; CHECK-LABEL: xor_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xor_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw.xor $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @xor_i64(i64* %p, i64 %v) { @@ -187,7 +187,7 @@ define i64 @xor_i64(i64* %p, i64 %v) { } ; CHECK-LABEL: xchg_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xchg_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw.xchg $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @xchg_i64(i64* %p, i64 %v) { @@ -196,7 +196,7 @@ define i64 @xchg_i64(i64* %p, i64 %v) { } ; CHECK-LABEL: cmpxchg_i64_loaded_value: -; CHECK-NEXT: .param i32, i64, i64{{$}} +; CHECK-NEXT: .functype cmpxchg_i64_loaded_value (i32, i64, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @cmpxchg_i64_loaded_value(i64* %p, i64 %exp, i64 %new) { @@ -206,7 +206,7 @@ define i64 @cmpxchg_i64_loaded_value(i64* %p, i64 %exp, i64 %new) { } ; CHECK-LABEL: cmpxchg_i64_success: -; CHECK-NEXT: .param i32, i64, i64{{$}} +; CHECK-NEXT: .functype cmpxchg_i64_success (i32, i64, i64) -> (i32){{$}} ; CHECK: i64.atomic.rmw.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: i64.eq $push1=, $pop0, $1{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -275,7 +275,7 @@ define i64 @umin_i64(i64* %p, i64 %v) { ; add ; CHECK-LABEL: add_sext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype add_sext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.add $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i32.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -287,7 +287,7 @@ define i32 @add_sext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: add_sext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype add_sext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.add $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i32.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -299,7 +299,7 @@ define i32 @add_sext_i16_i32(i16* %p, i32 %v) { } ; CHECK-LABEL: add_sext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype add_sext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.add $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i64.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -311,7 +311,7 @@ define i64 @add_sext_i8_i64(i8* %p, i64 %v) { } ; CHECK-LABEL: add_sext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype add_sext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.add $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i64.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -324,7 +324,7 @@ define i64 @add_sext_i16_i64(i16* %p, i64 %v) { ; 32->64 sext rmw gets selected as i32.atomic.rmw.add, i64_extend_s/i32 ; CHECK-LABEL: add_sext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype add_sext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: i32.wrap/i64 $push0=, $1{{$}} ; CHECK: i32.atomic.rmw.add $push1=, 0($0), $pop0{{$}} ; CHECK-NEXT: i64.extend_s/i32 $push2=, $pop1{{$}} @@ -339,7 +339,7 @@ define i64 @add_sext_i32_i64(i32* %p, i64 %v) { ; sub ; CHECK-LABEL: sub_sext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype sub_sext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.sub $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i32.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -351,7 +351,7 @@ define i32 @sub_sext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: sub_sext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype sub_sext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.sub $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i32.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -363,7 +363,7 @@ define i32 @sub_sext_i16_i32(i16* %p, i32 %v) { } ; CHECK-LABEL: sub_sext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype sub_sext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.sub $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i64.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -375,7 +375,7 @@ define i64 @sub_sext_i8_i64(i8* %p, i64 %v) { } ; CHECK-LABEL: sub_sext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype sub_sext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.sub $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i64.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -388,7 +388,7 @@ define i64 @sub_sext_i16_i64(i16* %p, i64 %v) { ; 32->64 sext rmw gets selected as i32.atomic.rmw.sub, i64_extend_s/i32 ; CHECK-LABEL: sub_sext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype sub_sext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: i32.wrap/i64 $push0=, $1 ; CHECK: i32.atomic.rmw.sub $push1=, 0($0), $pop0{{$}} ; CHECK-NEXT: i64.extend_s/i32 $push2=, $pop1{{$}} @@ -403,7 +403,7 @@ define i64 @sub_sext_i32_i64(i32* %p, i64 %v) { ; and ; CHECK-LABEL: and_sext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype and_sext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.and $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i32.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -415,7 +415,7 @@ define i32 @and_sext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: and_sext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype and_sext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.and $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i32.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -427,7 +427,7 @@ define i32 @and_sext_i16_i32(i16* %p, i32 %v) { } ; CHECK-LABEL: and_sext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype and_sext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.and $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i64.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -439,7 +439,7 @@ define i64 @and_sext_i8_i64(i8* %p, i64 %v) { } ; CHECK-LABEL: and_sext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype and_sext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.and $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i64.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -452,7 +452,7 @@ define i64 @and_sext_i16_i64(i16* %p, i64 %v) { ; 32->64 sext rmw gets selected as i32.atomic.rmw.and, i64_extend_s/i32 ; CHECK-LABEL: and_sext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype and_sext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: i32.wrap/i64 $push0=, $1{{$}} ; CHECK: i32.atomic.rmw.and $push1=, 0($0), $pop0{{$}} ; CHECK-NEXT: i64.extend_s/i32 $push2=, $pop1{{$}} @@ -467,7 +467,7 @@ define i64 @and_sext_i32_i64(i32* %p, i64 %v) { ; or ; CHECK-LABEL: or_sext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype or_sext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.or $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i32.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -479,7 +479,7 @@ define i32 @or_sext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: or_sext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype or_sext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.or $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i32.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -491,7 +491,7 @@ define i32 @or_sext_i16_i32(i16* %p, i32 %v) { } ; CHECK-LABEL: or_sext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype or_sext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.or $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i64.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -503,7 +503,7 @@ define i64 @or_sext_i8_i64(i8* %p, i64 %v) { } ; CHECK-LABEL: or_sext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype or_sext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.or $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i64.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -516,7 +516,7 @@ define i64 @or_sext_i16_i64(i16* %p, i64 %v) { ; 32->64 sext rmw gets selected as i32.atomic.rmw.or, i64_extend_s/i32 ; CHECK-LABEL: or_sext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype or_sext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: i32.wrap/i64 $push0=, $1{{$}} ; CHECK: i32.atomic.rmw.or $push1=, 0($0), $pop0{{$}} ; CHECK-NEXT: i64.extend_s/i32 $push2=, $pop1{{$}} @@ -531,7 +531,7 @@ define i64 @or_sext_i32_i64(i32* %p, i64 %v) { ; xor ; CHECK-LABEL: xor_sext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype xor_sext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.xor $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i32.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -543,7 +543,7 @@ define i32 @xor_sext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: xor_sext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype xor_sext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.xor $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i32.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -555,7 +555,7 @@ define i32 @xor_sext_i16_i32(i16* %p, i32 %v) { } ; CHECK-LABEL: xor_sext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xor_sext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.xor $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i64.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -567,7 +567,7 @@ define i64 @xor_sext_i8_i64(i8* %p, i64 %v) { } ; CHECK-LABEL: xor_sext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xor_sext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.xor $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i64.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -580,7 +580,7 @@ define i64 @xor_sext_i16_i64(i16* %p, i64 %v) { ; 32->64 sext rmw gets selected as i32.atomic.rmw.xor, i64_extend_s/i32 ; CHECK-LABEL: xor_sext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xor_sext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: i32.wrap/i64 $push0=, $1{{$}} ; CHECK: i32.atomic.rmw.xor $push1=, 0($0), $pop0{{$}} ; CHECK-NEXT: i64.extend_s/i32 $push2=, $pop1{{$}} @@ -595,7 +595,7 @@ define i64 @xor_sext_i32_i64(i32* %p, i64 %v) { ; xchg ; CHECK-LABEL: xchg_sext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype xchg_sext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.xchg $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i32.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -607,7 +607,7 @@ define i32 @xchg_sext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: xchg_sext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype xchg_sext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.xchg $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i32.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -619,7 +619,7 @@ define i32 @xchg_sext_i16_i32(i16* %p, i32 %v) { } ; CHECK-LABEL: xchg_sext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xchg_sext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.xchg $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i64.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -631,7 +631,7 @@ define i64 @xchg_sext_i8_i64(i8* %p, i64 %v) { } ; CHECK-LABEL: xchg_sext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xchg_sext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.xchg $push0=, 0($0), $1{{$}} ; CHECK-NEXT: i64.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -644,7 +644,7 @@ define i64 @xchg_sext_i16_i64(i16* %p, i64 %v) { ; 32->64 sext rmw gets selected as i32.atomic.rmw.xchg, i64_extend_s/i32 ; CHECK-LABEL: xchg_sext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xchg_sext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: i32.wrap/i64 $push0=, $1{{$}} ; CHECK: i32.atomic.rmw.xchg $push1=, 0($0), $pop0{{$}} ; CHECK-NEXT: i64.extend_s/i32 $push2=, $pop1{{$}} @@ -659,7 +659,7 @@ define i64 @xchg_sext_i32_i64(i32* %p, i64 %v) { ; cmpxchg ; CHECK-LABEL: cmpxchg_sext_i8_i32: -; CHECK-NEXT: .param i32, i32, i32{{$}} +; CHECK-NEXT: .functype cmpxchg_sext_i8_i32 (i32, i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: i32.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -673,7 +673,7 @@ define i32 @cmpxchg_sext_i8_i32(i8* %p, i32 %exp, i32 %new) { } ; CHECK-LABEL: cmpxchg_sext_i16_i32: -; CHECK-NEXT: .param i32, i32, i32{{$}} +; CHECK-NEXT: .functype cmpxchg_sext_i16_i32 (i32, i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: i32.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -687,7 +687,7 @@ define i32 @cmpxchg_sext_i16_i32(i16* %p, i32 %exp, i32 %new) { } ; CHECK-LABEL: cmpxchg_sext_i8_i64: -; CHECK-NEXT: .param i32, i64, i64{{$}} +; CHECK-NEXT: .functype cmpxchg_sext_i8_i64 (i32, i64, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: i64.extend8_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -701,7 +701,7 @@ define i64 @cmpxchg_sext_i8_i64(i8* %p, i64 %exp, i64 %new) { } ; CHECK-LABEL: cmpxchg_sext_i16_i64: -; CHECK-NEXT: .param i32, i64, i64{{$}} +; CHECK-NEXT: .functype cmpxchg_sext_i16_i64 (i32, i64, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: i64.extend16_s $push1=, $pop0{{$}} ; CHECK-NEXT: return $pop1{{$}} @@ -716,7 +716,7 @@ define i64 @cmpxchg_sext_i16_i64(i16* %p, i64 %exp, i64 %new) { ; 32->64 sext rmw gets selected as i32.atomic.rmw.cmpxchg, i64_extend_s/i32 ; CHECK-LABEL: cmpxchg_sext_i32_i64: -; CHECK-NEXT: .param i32, i64, i64{{$}} +; CHECK-NEXT: .functype cmpxchg_sext_i32_i64 (i32, i64, i64) -> (i64){{$}} ; CHECK: i32.wrap/i64 $push1=, $1{{$}} ; CHECK-NEXT: i32.wrap/i64 $push0=, $2{{$}} ; CHECK-NEXT: i32.atomic.rmw.cmpxchg $push2=, 0($0), $pop1, $pop0{{$}} @@ -737,7 +737,7 @@ define i64 @cmpxchg_sext_i32_i64(i32* %p, i64 %exp, i64 %new) { ; nand ; CHECK-LABEL: nand_sext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype nand_sext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: loop ; CHECK: i32.atomic.rmw8_u.cmpxchg ; CHECK: i32.extend8_s @@ -749,7 +749,7 @@ define i32 @nand_sext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: nand_sext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype nand_sext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: loop ; CHECK: i32.atomic.rmw16_u.cmpxchg ; CHECK: i32.extend16_s @@ -762,7 +762,7 @@ define i32 @nand_sext_i16_i32(i16* %p, i32 %v) { ; FIXME Currently this cannot make use of i64.atomic.rmw8_u.cmpxchg ; CHECK-LABEL: nand_sext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype nand_sext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: loop ; CHECK: i32.atomic.rmw8_u.cmpxchg ; CHECK: i64.extend_u/i32 @@ -776,7 +776,7 @@ define i64 @nand_sext_i8_i64(i8* %p, i64 %v) { ; FIXME Currently this cannot make use of i64.atomic.rmw16_u.cmpxchg ; CHECK-LABEL: nand_sext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype nand_sext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: loop ; CHECK: i32.atomic.rmw16_u.cmpxchg ; CHECK: i64.extend_u/i32 @@ -790,7 +790,7 @@ define i64 @nand_sext_i16_i64(i16* %p, i64 %v) { ; 32->64 sext rmw gets selected as i32.atomic.rmw.nand, i64_extend_s/i32 ; CHECK-LABEL: nand_sext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype nand_sext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: loop ; CHECK: i32.atomic.rmw.cmpxchg ; CHECK: i64.extend_s/i32 @@ -808,7 +808,7 @@ define i64 @nand_sext_i32_i64(i32* %p, i64 %v) { ; add ; CHECK-LABEL: add_zext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype add_zext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.add $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @add_zext_i8_i32(i8* %p, i32 %v) { @@ -819,7 +819,7 @@ define i32 @add_zext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: add_zext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype add_zext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.add $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @add_zext_i16_i32(i16* %p, i32 %v) { @@ -830,7 +830,7 @@ define i32 @add_zext_i16_i32(i16* %p, i32 %v) { } ; CHECK-LABEL: add_zext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype add_zext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.add $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @add_zext_i8_i64(i8* %p, i64 %v) { @@ -841,7 +841,7 @@ define i64 @add_zext_i8_i64(i8* %p, i64 %v) { } ; CHECK-LABEL: add_zext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype add_zext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.add $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @add_zext_i16_i64(i16* %p, i64 %v) { @@ -852,7 +852,7 @@ define i64 @add_zext_i16_i64(i16* %p, i64 %v) { } ; CHECK-LABEL: add_zext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype add_zext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw32_u.add $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @add_zext_i32_i64(i32* %p, i64 %v) { @@ -865,7 +865,7 @@ define i64 @add_zext_i32_i64(i32* %p, i64 %v) { ; sub ; CHECK-LABEL: sub_zext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype sub_zext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.sub $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @sub_zext_i8_i32(i8* %p, i32 %v) { @@ -876,7 +876,7 @@ define i32 @sub_zext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: sub_zext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype sub_zext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.sub $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @sub_zext_i16_i32(i16* %p, i32 %v) { @@ -887,7 +887,7 @@ define i32 @sub_zext_i16_i32(i16* %p, i32 %v) { } ; CHECK-LABEL: sub_zext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype sub_zext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.sub $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @sub_zext_i8_i64(i8* %p, i64 %v) { @@ -898,7 +898,7 @@ define i64 @sub_zext_i8_i64(i8* %p, i64 %v) { } ; CHECK-LABEL: sub_zext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype sub_zext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.sub $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @sub_zext_i16_i64(i16* %p, i64 %v) { @@ -909,7 +909,7 @@ define i64 @sub_zext_i16_i64(i16* %p, i64 %v) { } ; CHECK-LABEL: sub_zext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype sub_zext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw32_u.sub $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @sub_zext_i32_i64(i32* %p, i64 %v) { @@ -922,7 +922,7 @@ define i64 @sub_zext_i32_i64(i32* %p, i64 %v) { ; and ; CHECK-LABEL: and_zext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype and_zext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.and $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @and_zext_i8_i32(i8* %p, i32 %v) { @@ -933,7 +933,7 @@ define i32 @and_zext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: and_zext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype and_zext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.and $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @and_zext_i16_i32(i16* %p, i32 %v) { @@ -944,7 +944,7 @@ define i32 @and_zext_i16_i32(i16* %p, i32 %v) { } ; CHECK-LABEL: and_zext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype and_zext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.and $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @and_zext_i8_i64(i8* %p, i64 %v) { @@ -955,7 +955,7 @@ define i64 @and_zext_i8_i64(i8* %p, i64 %v) { } ; CHECK-LABEL: and_zext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype and_zext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.and $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @and_zext_i16_i64(i16* %p, i64 %v) { @@ -966,7 +966,7 @@ define i64 @and_zext_i16_i64(i16* %p, i64 %v) { } ; CHECK-LABEL: and_zext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype and_zext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw32_u.and $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @and_zext_i32_i64(i32* %p, i64 %v) { @@ -979,7 +979,7 @@ define i64 @and_zext_i32_i64(i32* %p, i64 %v) { ; or ; CHECK-LABEL: or_zext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype or_zext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.or $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @or_zext_i8_i32(i8* %p, i32 %v) { @@ -990,7 +990,7 @@ define i32 @or_zext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: or_zext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype or_zext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.or $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @or_zext_i16_i32(i16* %p, i32 %v) { @@ -1001,7 +1001,7 @@ define i32 @or_zext_i16_i32(i16* %p, i32 %v) { } ; CHECK-LABEL: or_zext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype or_zext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.or $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @or_zext_i8_i64(i8* %p, i64 %v) { @@ -1012,7 +1012,7 @@ define i64 @or_zext_i8_i64(i8* %p, i64 %v) { } ; CHECK-LABEL: or_zext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype or_zext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.or $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @or_zext_i16_i64(i16* %p, i64 %v) { @@ -1023,7 +1023,7 @@ define i64 @or_zext_i16_i64(i16* %p, i64 %v) { } ; CHECK-LABEL: or_zext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype or_zext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw32_u.or $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @or_zext_i32_i64(i32* %p, i64 %v) { @@ -1036,7 +1036,7 @@ define i64 @or_zext_i32_i64(i32* %p, i64 %v) { ; xor ; CHECK-LABEL: xor_zext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype xor_zext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.xor $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @xor_zext_i8_i32(i8* %p, i32 %v) { @@ -1047,7 +1047,7 @@ define i32 @xor_zext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: xor_zext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype xor_zext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.xor $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @xor_zext_i16_i32(i16* %p, i32 %v) { @@ -1058,7 +1058,7 @@ define i32 @xor_zext_i16_i32(i16* %p, i32 %v) { } ; CHECK-LABEL: xor_zext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xor_zext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.xor $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @xor_zext_i8_i64(i8* %p, i64 %v) { @@ -1069,7 +1069,7 @@ define i64 @xor_zext_i8_i64(i8* %p, i64 %v) { } ; CHECK-LABEL: xor_zext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xor_zext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.xor $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @xor_zext_i16_i64(i16* %p, i64 %v) { @@ -1080,7 +1080,7 @@ define i64 @xor_zext_i16_i64(i16* %p, i64 %v) { } ; CHECK-LABEL: xor_zext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xor_zext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw32_u.xor $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @xor_zext_i32_i64(i32* %p, i64 %v) { @@ -1093,7 +1093,7 @@ define i64 @xor_zext_i32_i64(i32* %p, i64 %v) { ; xchg ; CHECK-LABEL: xchg_zext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype xchg_zext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.xchg $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @xchg_zext_i8_i32(i8* %p, i32 %v) { @@ -1104,7 +1104,7 @@ define i32 @xchg_zext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: xchg_zext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype xchg_zext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.xchg $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @xchg_zext_i16_i32(i16* %p, i32 %v) { @@ -1115,7 +1115,7 @@ define i32 @xchg_zext_i16_i32(i16* %p, i32 %v) { } ; CHECK-LABEL: xchg_zext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xchg_zext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.xchg $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @xchg_zext_i8_i64(i8* %p, i64 %v) { @@ -1126,7 +1126,7 @@ define i64 @xchg_zext_i8_i64(i8* %p, i64 %v) { } ; CHECK-LABEL: xchg_zext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xchg_zext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.xchg $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @xchg_zext_i16_i64(i16* %p, i64 %v) { @@ -1137,7 +1137,7 @@ define i64 @xchg_zext_i16_i64(i16* %p, i64 %v) { } ; CHECK-LABEL: xchg_zext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype xchg_zext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw32_u.xchg $push0=, 0($0), $1{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @xchg_zext_i32_i64(i32* %p, i64 %v) { @@ -1150,7 +1150,7 @@ define i64 @xchg_zext_i32_i64(i32* %p, i64 %v) { ; cmpxchg ; CHECK-LABEL: cmpxchg_zext_i8_i32: -; CHECK-NEXT: .param i32, i32, i32{{$}} +; CHECK-NEXT: .functype cmpxchg_zext_i8_i32 (i32, i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw8_u.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @cmpxchg_zext_i8_i32(i8* %p, i32 %exp, i32 %new) { @@ -1163,7 +1163,7 @@ define i32 @cmpxchg_zext_i8_i32(i8* %p, i32 %exp, i32 %new) { } ; CHECK-LABEL: cmpxchg_zext_i16_i32: -; CHECK-NEXT: .param i32, i32, i32{{$}} +; CHECK-NEXT: .functype cmpxchg_zext_i16_i32 (i32, i32, i32) -> (i32){{$}} ; CHECK: i32.atomic.rmw16_u.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: return $pop0{{$}} define i32 @cmpxchg_zext_i16_i32(i16* %p, i32 %exp, i32 %new) { @@ -1176,7 +1176,7 @@ define i32 @cmpxchg_zext_i16_i32(i16* %p, i32 %exp, i32 %new) { } ; CHECK-LABEL: cmpxchg_zext_i8_i64: -; CHECK-NEXT: .param i32, i64, i64{{$}} +; CHECK-NEXT: .functype cmpxchg_zext_i8_i64 (i32, i64, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw8_u.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @cmpxchg_zext_i8_i64(i8* %p, i64 %exp, i64 %new) { @@ -1189,7 +1189,7 @@ define i64 @cmpxchg_zext_i8_i64(i8* %p, i64 %exp, i64 %new) { } ; CHECK-LABEL: cmpxchg_zext_i16_i64: -; CHECK-NEXT: .param i32, i64, i64{{$}} +; CHECK-NEXT: .functype cmpxchg_zext_i16_i64 (i32, i64, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw16_u.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @cmpxchg_zext_i16_i64(i16* %p, i64 %exp, i64 %new) { @@ -1202,7 +1202,7 @@ define i64 @cmpxchg_zext_i16_i64(i16* %p, i64 %exp, i64 %new) { } ; CHECK-LABEL: cmpxchg_zext_i32_i64: -; CHECK-NEXT: .param i32, i64, i64{{$}} +; CHECK-NEXT: .functype cmpxchg_zext_i32_i64 (i32, i64, i64) -> (i64){{$}} ; CHECK: i64.atomic.rmw32_u.cmpxchg $push0=, 0($0), $1, $2{{$}} ; CHECK-NEXT: return $pop0{{$}} define i64 @cmpxchg_zext_i32_i64(i32* %p, i64 %exp, i64 %new) { @@ -1220,7 +1220,7 @@ define i64 @cmpxchg_zext_i32_i64(i32* %p, i64 %exp, i64 %new) { ; nand ; CHECK-LABEL: nand_zext_i8_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype nand_zext_i8_i32 (i32, i32) -> (i32){{$}} ; CHECK: loop ; CHECK: i32.atomic.rmw8_u.cmpxchg define i32 @nand_zext_i8_i32(i8* %p, i32 %v) { @@ -1231,7 +1231,7 @@ define i32 @nand_zext_i8_i32(i8* %p, i32 %v) { } ; CHECK-LABEL: nand_zext_i16_i32: -; CHECK-NEXT: .param i32, i32{{$}} +; CHECK-NEXT: .functype nand_zext_i16_i32 (i32, i32) -> (i32){{$}} ; CHECK: loop ; CHECK: i32.atomic.rmw16_u.cmpxchg define i32 @nand_zext_i16_i32(i16* %p, i32 %v) { @@ -1243,7 +1243,7 @@ define i32 @nand_zext_i16_i32(i16* %p, i32 %v) { ; FIXME Currently this cannot make use of i64.atomic.rmw8_u.cmpxchg ; CHECK-LABEL: nand_zext_i8_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype nand_zext_i8_i64 (i32, i64) -> (i64){{$}} ; CHECK: loop ; CHECK: i32.atomic.rmw8_u.cmpxchg ; CHECK: i64.extend_u/i32 @@ -1256,7 +1256,7 @@ define i64 @nand_zext_i8_i64(i8* %p, i64 %v) { ; FIXME Currently this cannot make use of i64.atomic.rmw16_u.cmpxchg ; CHECK-LABEL: nand_zext_i16_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype nand_zext_i16_i64 (i32, i64) -> (i64){{$}} ; CHECK: loop ; CHECK: i32.atomic.rmw16_u.cmpxchg ; CHECK: i64.extend_u/i32 @@ -1269,7 +1269,7 @@ define i64 @nand_zext_i16_i64(i16* %p, i64 %v) { ; FIXME Currently this cannot make use of i64.atomic.rmw32_u.cmpxchg ; CHECK-LABEL: nand_zext_i32_i64: -; CHECK-NEXT: .param i32, i64{{$}} +; CHECK-NEXT: .functype nand_zext_i32_i64 (i32, i64) -> (i64){{$}} ; CHECK: loop ; CHECK: i32.atomic.rmw.cmpxchg ; CHECK: i64.extend_u/i32 |