| ; 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} |