| ; RUN: llc < %s -asm-verbose=false -wasm-disable-explicit-locals -wasm-keep-registers | FileCheck %s --check-prefixes=CHECK,DEFAULT |
| ; RUN: llc < %s -mcpu=mvp -asm-verbose=false -wasm-disable-explicit-locals -wasm-keep-registers | FileCheck %s --check-prefixes=CHECK,MVP |
| |
| target triple = "wasm32-unknown-unknown" |
| |
| declare i32 @get_int(i16 %arg) |
| |
| define i32 @func_1(i16 %arg1 , i32 %arg2) #0 { |
| ; CHECK-LABEL: func_1: |
| ; |
| ; DEFAULT: i32.extend16_s $push1=, $0 |
| ; DEFAULT-NEXT: call $push0=, get_int, $pop1 |
| ; |
| ; MVP: i32.const $push1=, 16 |
| ; MVP-NEXT: i32.shl $push2=, $0, $pop1 |
| ; MVP-NEXT: i32.const $push4=, 16 |
| ; MVP-NEXT: i32.shr_s $push3=, $pop2, $pop4 |
| ; MVP-NEXT: call $push0=, get_int, $pop3 |
| ; |
| ; CHECK-NEXT: end_function |
| entry: |
| %retval = call i32 @get_int(i16 signext %arg1) |
| ret i32 %retval |
| } |
| |
| attributes #0 = {noinline nounwind optnone} |