xref: /aosp_15_r20/external/llvm/test/CodeGen/WebAssembly/store.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -asm-verbose=false -disable-wasm-fallthrough-return-opt | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -asm-verbose=false -disable-wasm-fallthrough-return-opt -fast-isel -fast-isel-abort=1 | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; Test that basic stores are assembled properly.
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
7*9880d681SAndroid Build Coastguard Workertarget triple = "wasm32-unknown-unknown"
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sti32:
10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .param i32, i32{{$}}
11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: i32.store $drop=, 0($0), $1{{$}}
12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: return{{$}}
13*9880d681SAndroid Build Coastguard Workerdefine void @sti32(i32 *%p, i32 %v) {
14*9880d681SAndroid Build Coastguard Worker  store i32 %v, i32* %p
15*9880d681SAndroid Build Coastguard Worker  ret void
16*9880d681SAndroid Build Coastguard Worker}
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sti64:
19*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .param i32, i64{{$}}
20*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: i64.store $drop=, 0($0), $1{{$}}
21*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: return{{$}}
22*9880d681SAndroid Build Coastguard Workerdefine void @sti64(i64 *%p, i64 %v) {
23*9880d681SAndroid Build Coastguard Worker  store i64 %v, i64* %p
24*9880d681SAndroid Build Coastguard Worker  ret void
25*9880d681SAndroid Build Coastguard Worker}
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: stf32:
28*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .param i32, f32{{$}}
29*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f32.store $drop=, 0($0), $1{{$}}
30*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: return{{$}}
31*9880d681SAndroid Build Coastguard Workerdefine void @stf32(float *%p, float %v) {
32*9880d681SAndroid Build Coastguard Worker  store float %v, float* %p
33*9880d681SAndroid Build Coastguard Worker  ret void
34*9880d681SAndroid Build Coastguard Worker}
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: stf64:
37*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .param i32, f64{{$}}
38*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f64.store $drop=, 0($0), $1{{$}}
39*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: return{{$}}
40*9880d681SAndroid Build Coastguard Workerdefine void @stf64(double *%p, double %v) {
41*9880d681SAndroid Build Coastguard Worker  store double %v, double* %p
42*9880d681SAndroid Build Coastguard Worker  ret void
43*9880d681SAndroid Build Coastguard Worker}
44