1; RUN: llc < %s -asm-verbose=false | FileCheck %s 2 3; Test that basic loads are assembled properly. 4 5target datalayout = "e-p:32:32-i64:64-n32:64-S128" 6target triple = "wasm32-unknown-unknown" 7 8; CHECK-LABEL: ldi32: 9; CHECK-NEXT: .param i32{{$}} 10; CHECK-NEXT: .result i32{{$}} 11; CHECK-NEXT: @0{{$}} 12; CHECK-NEXT: set_local @1, pop{{$}} 13; CHECK-NEXT: load_i32 @1{{$}} 14; CHECK-NEXT: set_local @2, pop{{$}} 15; CHECK-NEXT: return @2{{$}} 16define i32 @ldi32(i32 *%p) { 17 %v = load i32, i32* %p 18 ret i32 %v 19} 20 21; CHECK-LABEL: ldi64: 22; CHECK-NEXT: .param i32{{$}} 23; CHECK-NEXT: .result i64{{$}} 24; CHECK-NEXT: @0{{$}} 25; CHECK-NEXT: set_local @1, pop{{$}} 26; CHECK-NEXT: load_i64 @1{{$}} 27; CHECK-NEXT: set_local @2, pop{{$}} 28; CHECK-NEXT: return @2{{$}} 29define i64 @ldi64(i64 *%p) { 30 %v = load i64, i64* %p 31 ret i64 %v 32} 33 34; CHECK-LABEL: ldf32: 35; CHECK-NEXT: .param i32{{$}} 36; CHECK-NEXT: .result f32{{$}} 37; CHECK-NEXT: @0{{$}} 38; CHECK-NEXT: set_local @1, pop{{$}} 39; CHECK-NEXT: load_f32 @1{{$}} 40; CHECK-NEXT: set_local @2, pop{{$}} 41; CHECK-NEXT: return @2{{$}} 42define float @ldf32(float *%p) { 43 %v = load float, float* %p 44 ret float %v 45} 46 47; CHECK-LABEL: ldf64: 48; CHECK-NEXT: .param i32{{$}} 49; CHECK-NEXT: .result f64{{$}} 50; CHECK-NEXT: @0{{$}} 51; CHECK-NEXT: set_local @1, pop{{$}} 52; CHECK-NEXT: load_f64 @1{{$}} 53; CHECK-NEXT: set_local @2, pop{{$}} 54; CHECK-NEXT: return @2{{$}} 55define double @ldf64(double *%p) { 56 %v = load double, double* %p 57 ret double %v 58} 59