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 64-bit addresses. 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:e-p:64:64-i64:64-n32:64-S128" 6*9880d681SAndroid Build Coastguard Workertarget triple = "wasm64-unknown-unknown" 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.wasm.current.memory.i64() nounwind readonly 9*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.wasm.grow.memory.i64(i64) nounwind 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: current_memory: 12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .result i64{{$}} 13*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: current_memory $push0={{$}} 14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: return $pop0{{$}} 15*9880d681SAndroid Build Coastguard Workerdefine i64 @current_memory() { 16*9880d681SAndroid Build Coastguard Worker %a = call i64 @llvm.wasm.current.memory.i64() 17*9880d681SAndroid Build Coastguard Worker ret i64 %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 i64{{$}} 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(i64 %n) { 25*9880d681SAndroid Build Coastguard Worker call void @llvm.wasm.grow.memory.i64(i64 %n) 26*9880d681SAndroid Build Coastguard Worker ret void 27*9880d681SAndroid Build Coastguard Worker} 28