xref: /llvm-project/llvm/test/CodeGen/Mips/GlobalISel/legalizer/load.mir (revision 3f3ff0e4309ac317ebea3e44188751451b88862f)
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
3---
4name:            load_i32
5alignment:       4
6tracksRegLiveness: true
7body:             |
8  bb.1.entry:
9    liveins: $a0
10
11    ; MIPS32-LABEL: name: load_i32
12    ; MIPS32: liveins: $a0
13    ; MIPS32-NEXT: {{  $}}
14    ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
15    ; MIPS32-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s32))
16    ; MIPS32-NEXT: $v0 = COPY [[LOAD]](s32)
17    ; MIPS32-NEXT: RetRA implicit $v0
18    %0:_(p0) = COPY $a0
19    %1:_(s32) = G_LOAD %0(p0) :: (load (s32))
20    $v0 = COPY %1(s32)
21    RetRA implicit $v0
22
23...
24---
25name:            load_i64
26alignment:       4
27tracksRegLiveness: true
28body:             |
29  bb.1.entry:
30    liveins: $a0
31
32    ; MIPS32-LABEL: name: load_i64
33    ; MIPS32: liveins: $a0
34    ; MIPS32-NEXT: {{  $}}
35    ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
36    ; MIPS32-NEXT: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p0) :: (load (s64))
37    ; MIPS32-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[LOAD]](s64)
38    ; MIPS32-NEXT: $v0 = COPY [[UV]](s32)
39    ; MIPS32-NEXT: $v1 = COPY [[UV1]](s32)
40    ; MIPS32-NEXT: RetRA implicit $v0, implicit $v1
41    %0:_(p0) = COPY $a0
42    %1:_(s64) = G_LOAD %0(p0) :: (load (s64))
43    %2:_(s32), %3:_(s32) = G_UNMERGE_VALUES %1(s64)
44    $v0 = COPY %2(s32)
45    $v1 = COPY %3(s32)
46    RetRA implicit $v0, implicit $v1
47
48...
49---
50name:            load_float
51alignment:       4
52tracksRegLiveness: true
53body:             |
54  bb.1.entry:
55    liveins: $a0
56
57    ; MIPS32-LABEL: name: load_float
58    ; MIPS32: liveins: $a0
59    ; MIPS32-NEXT: {{  $}}
60    ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
61    ; MIPS32-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s32))
62    ; MIPS32-NEXT: $f0 = COPY [[LOAD]](s32)
63    ; MIPS32-NEXT: RetRA implicit $f0
64    %0:_(p0) = COPY $a0
65    %1:_(s32) = G_LOAD %0(p0) :: (load (s32))
66    $f0 = COPY %1(s32)
67    RetRA implicit $f0
68
69...
70---
71name:            load_double
72alignment:       4
73tracksRegLiveness: true
74body:             |
75  bb.1.entry:
76    liveins: $a0
77
78    ; MIPS32-LABEL: name: load_double
79    ; MIPS32: liveins: $a0
80    ; MIPS32-NEXT: {{  $}}
81    ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
82    ; MIPS32-NEXT: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p0) :: (load (s64))
83    ; MIPS32-NEXT: $d0 = COPY [[LOAD]](s64)
84    ; MIPS32-NEXT: RetRA implicit $d0
85    %0:_(p0) = COPY $a0
86    %1:_(s64) = G_LOAD %0(p0) :: (load (s64))
87    $d0 = COPY %1(s64)
88    RetRA implicit $d0
89
90...
91