1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=regbankselect -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32
3--- |
4
5  define void @load_store_i8(i8* %px, i8* %py) {entry: ret void}
6  define void @load_store_i16(i16* %px, i16* %py) {entry: ret void}
7  define void @load_store_i32(i32* %px, i32* %py) {entry: ret void}
8
9...
10---
11name:            load_store_i8
12alignment:       4
13legalized:       true
14tracksRegLiveness: true
15body:             |
16  bb.1.entry:
17    liveins: $a0, $a1
18
19    ; MIPS32-LABEL: name: load_store_i8
20    ; MIPS32: liveins: $a0, $a1
21    ; MIPS32: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
22    ; MIPS32: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
23    ; MIPS32: [[LOAD:%[0-9]+]]:gprb(s32) = G_LOAD [[COPY1]](p0) :: (load (s8) from %ir.py)
24    ; MIPS32: [[COPY2:%[0-9]+]]:gprb(s32) = COPY [[LOAD]](s32)
25    ; MIPS32: G_STORE [[COPY2]](s32), [[COPY]](p0) :: (store (s8) into %ir.px)
26    ; MIPS32: RetRA
27    %0:_(p0) = COPY $a0
28    %1:_(p0) = COPY $a1
29    %4:_(s32) = G_LOAD %1(p0) :: (load (s8) from %ir.py)
30    %3:_(s32) = COPY %4(s32)
31    G_STORE %3(s32), %0(p0) :: (store (s8) into %ir.px)
32    RetRA
33
34...
35---
36name:            load_store_i16
37alignment:       4
38legalized:       true
39tracksRegLiveness: true
40body:             |
41  bb.1.entry:
42    liveins: $a0, $a1
43
44    ; MIPS32-LABEL: name: load_store_i16
45    ; MIPS32: liveins: $a0, $a1
46    ; MIPS32: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
47    ; MIPS32: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
48    ; MIPS32: [[LOAD:%[0-9]+]]:gprb(s32) = G_LOAD [[COPY1]](p0) :: (load (s16) from %ir.py)
49    ; MIPS32: [[COPY2:%[0-9]+]]:gprb(s32) = COPY [[LOAD]](s32)
50    ; MIPS32: G_STORE [[COPY2]](s32), [[COPY]](p0) :: (store (s16) into %ir.px)
51    ; MIPS32: RetRA
52    %0:_(p0) = COPY $a0
53    %1:_(p0) = COPY $a1
54    %4:_(s32) = G_LOAD %1(p0) :: (load (s16) from %ir.py)
55    %3:_(s32) = COPY %4(s32)
56    G_STORE %3(s32), %0(p0) :: (store (s16) into %ir.px)
57    RetRA
58
59...
60---
61name:            load_store_i32
62alignment:       4
63legalized:       true
64tracksRegLiveness: true
65body:             |
66  bb.1.entry:
67    liveins: $a0, $a1
68
69    ; MIPS32-LABEL: name: load_store_i32
70    ; MIPS32: liveins: $a0, $a1
71    ; MIPS32: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
72    ; MIPS32: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
73    ; MIPS32: [[LOAD:%[0-9]+]]:gprb(s32) = G_LOAD [[COPY1]](p0) :: (load (s32) from %ir.py)
74    ; MIPS32: G_STORE [[LOAD]](s32), [[COPY]](p0) :: (store (s32) into %ir.px)
75    ; MIPS32: RetRA
76    %0:_(p0) = COPY $a0
77    %1:_(p0) = COPY $a1
78    %2:_(s32) = G_LOAD %1(p0) :: (load (s32) from %ir.py)
79    G_STORE %2(s32), %0(p0) :: (store (s32) into %ir.px)
80    RetRA
81
82...
83