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