brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · d6c1e2f Raw
57 lines · plain
1; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -disable-wasm-fallthrough-return-opt -wasm-keep-registers | FileCheck --check-prefixes CHECK,CHK32 %s2; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -disable-wasm-fallthrough-return-opt -wasm-keep-registers -fast-isel -fast-isel-abort=1 | FileCheck --check-prefixes CHECK,CHK32 %s3; RUN: llc < %s --mtriple=wasm64-unknown-unknown -asm-verbose=false -disable-wasm-fallthrough-return-opt -wasm-keep-registers | FileCheck --check-prefixes CHECK,CHK64 %s4; RUN: llc < %s --mtriple=wasm64-unknown-unknown -asm-verbose=false -disable-wasm-fallthrough-return-opt -wasm-keep-registers -fast-isel -fast-isel-abort=1 | FileCheck --check-prefixes CHECK,CHK64 %s5 6; Test that basic stores are assembled properly.7 8target triple = "wasm32-unknown-unknown"9 10; CHECK-LABEL: sti32:11; CHK32-NEXT: .functype sti32 (i32, i32) -> (){{$}}12; CHK64-NEXT: .functype sti32 (i64, i32) -> (){{$}}13; CHECK-NEXT: local.get $push[[L0:[0-9]+]]=, 0{{$}}14; CHECK-NEXT: local.get $push[[L1:[0-9]+]]=, 1{{$}}15; CHECK-NEXT: i32.store 0($pop[[L0]]), $pop[[L1]]{{$}}16; CHECK-NEXT: return{{$}}17define void @sti32(ptr %p, i32 %v) {18  store i32 %v, ptr %p19  ret void20}21 22; CHECK-LABEL: sti64:23; CHK32-NEXT: .functype sti64 (i32, i64) -> (){{$}}24; CHK64-NEXT: .functype sti64 (i64, i64) -> (){{$}}25; CHECK-NEXT: local.get $push[[L0:[0-9]+]]=, 0{{$}}26; CHECK-NEXT: local.get $push[[L1:[0-9]+]]=, 1{{$}}27; CHECK-NEXT: i64.store 0($pop[[L0]]), $pop[[L1]]{{$}}28; CHECK-NEXT: return{{$}}29define void @sti64(ptr %p, i64 %v) {30  store i64 %v, ptr %p31  ret void32}33 34; CHECK-LABEL: stf32:35; CHK32-NEXT: .functype stf32 (i32, f32) -> (){{$}}36; CHK64-NEXT: .functype stf32 (i64, f32) -> (){{$}}37; CHECK-NEXT: local.get $push[[L0:[0-9]+]]=, 0{{$}}38; CHECK-NEXT: local.get $push[[L1:[0-9]+]]=, 1{{$}}39; CHECK-NEXT: f32.store 0($pop[[L0]]), $pop[[L1]]{{$}}40; CHECK-NEXT: return{{$}}41define void @stf32(ptr %p, float %v) {42  store float %v, ptr %p43  ret void44}45 46; CHECK-LABEL: stf64:47; CHK32-NEXT: .functype stf64 (i32, f64) -> (){{$}}48; CHK64-NEXT: .functype stf64 (i64, f64) -> (){{$}}49; CHECK-NEXT: local.get $push[[L0:[0-9]+]]=, 0{{$}}50; CHECK-NEXT: local.get $push[[L1:[0-9]+]]=, 1{{$}}51; CHECK-NEXT: f64.store 0($pop[[L0]]), $pop[[L1]]{{$}}52; CHECK-NEXT: return{{$}}53define void @stf64(ptr %p, double %v) {54  store double %v, ptr %p55  ret void56}57