xref: /llvm-project/llvm/test/CodeGen/WebAssembly/fast-isel-i256.ll (revision 122b0220fd45ee71acda912b0b712bb8edb6ba46)
1; RUN: llc < %s -O0 -wasm-keep-registers
2; PR36564
3; PR37546
4
5; Test that fast-isel properly copes with i256 arguments and return types.
6
7target triple = "wasm32-unknown-unknown"
8
9; CHECK-LABEL: add:
10; CHECK-NEXT: .functype add (i32, i64, i64, i64, i64, i64, i64, i64, i64) -> (){{$}}
11; CHECK-NOT:  .result
12; CHECK: end_function
13define i256 @add(i256 %x, i256 %y) {
14    %z = add i256 %x, %y
15    ret i256 %z
16}
17
18; CHECK-LABEL: return_zero:
19; CHECK-NEXT: .functype return_zero (i32) -> (){{$}}
20; CHECK: end_function
21define i256 @return_zero() {
22    ret i256 0
23}
24
25; CHECK-LABEL: return_zero_with_params:
26; CHECK-NEXT: .functype return_zero_with_params (i32, f32) -> (){{$}}
27; CHECK: end_function
28define i256 @return_zero_with_params(float %x) {
29    ret i256 0
30}
31