• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc  -O0 -mtriple=mipsel-linux-gnu -global-isel  -verify-machineinstrs %s -o -| FileCheck %s -check-prefixes=MIPS32
3
4define i32 @load_i32(i32* %ptr) {
5; MIPS32-LABEL: load_i32:
6; MIPS32:       # %bb.0: # %entry
7; MIPS32-NEXT:    lw $2, 0($4)
8; MIPS32-NEXT:    jr $ra
9; MIPS32-NEXT:    nop
10entry:
11  %0 = load i32, i32* %ptr
12  ret i32 %0
13}
14
15define i64 @load_i64(i64* %ptr) {
16; MIPS32-LABEL: load_i64:
17; MIPS32:       # %bb.0: # %entry
18; MIPS32-NEXT:    lw $2, 0($4)
19; MIPS32-NEXT:    lw $3, 4($4)
20; MIPS32-NEXT:    jr $ra
21; MIPS32-NEXT:    nop
22entry:
23  %0 = load i64, i64* %ptr
24  ret i64 %0
25}
26
27define void @load_ambiguous_i64_in_fpr(i64* %i64_ptr_a, i64* %i64_ptr_b) {
28; MIPS32-LABEL: load_ambiguous_i64_in_fpr:
29; MIPS32:       # %bb.0: # %entry
30; MIPS32-NEXT:    ldc1 $f0, 0($4)
31; MIPS32-NEXT:    sdc1 $f0, 0($5)
32; MIPS32-NEXT:    jr $ra
33; MIPS32-NEXT:    nop
34entry:
35  %0 = load i64, i64* %i64_ptr_a
36  store i64 %0, i64* %i64_ptr_b
37  ret void
38}
39
40define float @load_float(float* %ptr) {
41; MIPS32-LABEL: load_float:
42; MIPS32:       # %bb.0: # %entry
43; MIPS32-NEXT:    lwc1 $f0, 0($4)
44; MIPS32-NEXT:    jr $ra
45; MIPS32-NEXT:    nop
46entry:
47  %0 = load float, float* %ptr
48  ret float %0
49}
50
51define void @load_ambiguous_float_in_gpr(float* %float_ptr_a, float* %float_ptr_b) {
52; MIPS32-LABEL: load_ambiguous_float_in_gpr:
53; MIPS32:       # %bb.0: # %entry
54; MIPS32-NEXT:    lw $1, 0($4)
55; MIPS32-NEXT:    sw $1, 0($5)
56; MIPS32-NEXT:    jr $ra
57; MIPS32-NEXT:    nop
58entry:
59  %0 = load float, float* %float_ptr_a
60  store float %0, float* %float_ptr_b
61  ret void
62}
63
64define double @load_double(double* %ptr) {
65; MIPS32-LABEL: load_double:
66; MIPS32:       # %bb.0: # %entry
67; MIPS32-NEXT:    ldc1 $f0, 0($4)
68; MIPS32-NEXT:    jr $ra
69; MIPS32-NEXT:    nop
70entry:
71  %0 = load double, double* %ptr
72  ret double %0
73}
74