blob: b28b93fb57916bd829e2e95e87de4a07b6ca9e52 [file] [log] [blame] [edit]
; 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}