1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32
4 name: load1_s8_to_load1_s32
6 tracksRegLiveness: true
11 ; MIPS32-LABEL: name: load1_s8_to_load1_s32
12 ; MIPS32: liveins: $a0
14 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
15 ; MIPS32-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s8))
16 ; MIPS32-NEXT: $v0 = COPY [[LOAD]](s32)
17 ; MIPS32-NEXT: RetRA implicit $v0
19 %2:_(s32) = G_LOAD %0(p0) :: (load (s8))
25 name: load2_s16_to_load2_s32
27 tracksRegLiveness: true
32 ; MIPS32-LABEL: name: load2_s16_to_load2_s32
33 ; MIPS32: liveins: $a0
35 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
36 ; MIPS32-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s16))
37 ; MIPS32-NEXT: $v0 = COPY [[LOAD]](s32)
38 ; MIPS32-NEXT: RetRA implicit $v0
40 %2:_(s32) = G_LOAD %0(p0) :: (load (s16))
48 tracksRegLiveness: true
53 ; MIPS32-LABEL: name: load_store_i1
54 ; MIPS32: liveins: $a0, $a1
56 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
57 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
58 ; MIPS32-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY1]](p0) :: (load (s8))
59 ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
60 ; MIPS32-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[LOAD]], [[C]]
61 ; MIPS32-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[AND]], [[C]]
62 ; MIPS32-NEXT: G_STORE [[AND1]](s32), [[COPY]](p0) :: (store (s8))
66 %2:_(s1) = G_LOAD %1(p0) :: (load (s1))
67 G_STORE %2(s1), %0(p0) :: (store (s1))
74 tracksRegLiveness: true
79 ; MIPS32-LABEL: name: load_store_i8
80 ; MIPS32: liveins: $a0, $a1
82 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
83 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
84 ; MIPS32-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY1]](p0) :: (load (s8))
85 ; MIPS32-NEXT: G_STORE [[LOAD]](s32), [[COPY]](p0) :: (store (s8))
89 %2:_(s8) = G_LOAD %1(p0) :: (load (s8))
90 G_STORE %2(s8), %0(p0) :: (store (s8))
97 tracksRegLiveness: true
102 ; MIPS32-LABEL: name: load_store_i16
103 ; MIPS32: liveins: $a0, $a1
104 ; MIPS32-NEXT: {{ $}}
105 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
106 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
107 ; MIPS32-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY1]](p0) :: (load (s16))
108 ; MIPS32-NEXT: G_STORE [[LOAD]](s32), [[COPY]](p0) :: (store (s16))
112 %2:_(s16) = G_LOAD %1(p0) :: (load (s16))
113 G_STORE %2(s16), %0(p0) :: (store (s16))
120 tracksRegLiveness: true
125 ; MIPS32-LABEL: name: load_store_i32
126 ; MIPS32: liveins: $a0, $a1
127 ; MIPS32-NEXT: {{ $}}
128 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
129 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
130 ; MIPS32-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY1]](p0) :: (load (s32))
131 ; MIPS32-NEXT: G_STORE [[LOAD]](s32), [[COPY]](p0) :: (store (s32))
135 %2:_(s32) = G_LOAD %1(p0) :: (load (s32))
136 G_STORE %2(s32), %0(p0) :: (store (s32))