1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -asm-verbose=false -disable-wasm-fallthrough-return-opt | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; Test that basic memory operations assemble as expected with 32-bit addresses. 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" 6*9880d681SAndroid Build Coastguard Workertarget triple = "wasm32-unknown-unknown" 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.wasm.current.memory.i32() nounwind readonly 9*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.wasm.grow.memory.i32(i32) nounwind 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: current_memory: 12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .result i32{{$}} 13*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: current_memory $push0={{$}} 14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: return $pop0{{$}} 15*9880d681SAndroid Build Coastguard Workerdefine i32 @current_memory() { 16*9880d681SAndroid Build Coastguard Worker %a = call i32 @llvm.wasm.current.memory.i32() 17*9880d681SAndroid Build Coastguard Worker ret i32 %a 18*9880d681SAndroid Build Coastguard Worker} 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: grow_memory: 21*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .param i32{{$}} 22*9880d681SAndroid Build Coastguard Worker; CHECK: grow_memory $0{{$}} 23*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: return{{$}} 24*9880d681SAndroid Build Coastguard Workerdefine void @grow_memory(i32 %n) { 25*9880d681SAndroid Build Coastguard Worker call void @llvm.wasm.grow.memory.i32(i32 %n) 26*9880d681SAndroid Build Coastguard Worker ret void 27*9880d681SAndroid Build Coastguard Worker} 28