240 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS323# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=legalizer -mcpu=mips32r6 -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32R64--- |5 6 @float_align1 = common global float 0.000000e+00, align 17 @float_align2 = common global float 0.000000e+00, align 28 @float_align4 = common global float 0.000000e+00, align 49 @float_align8 = common global float 0.000000e+00, align 810 @i32_align1 = common global i32 0, align 111 @i32_align2 = common global i32 0, align 212 @i32_align4 = common global i32 0, align 413 @i32_align8 = common global i32 0, align 814 15 define float @load_float_align1() {16 entry:17 %0 = load float, ptr @float_align1, align 118 ret float %019 }20 21 define float @load_float_align2() {22 entry:23 %0 = load float, ptr @float_align2, align 224 ret float %025 }26 27 define float @load_float_align4() {28 entry:29 %0 = load float, ptr @float_align4, align 430 ret float %031 }32 33 define float @load_float_align8() {34 entry:35 %0 = load float, ptr @float_align8, align 836 ret float %037 }38 39 define i32 @load_i32_align1() {40 entry:41 %0 = load i32, ptr @i32_align1, align 142 ret i32 %043 }44 45 define i32 @load_i32_align2() {46 entry:47 %0 = load i32, ptr @i32_align2, align 248 ret i32 %049 }50 51 define i32 @load_i32_align4() {52 entry:53 %0 = load i32, ptr @i32_align4, align 454 ret i32 %055 }56 57 define i32 @load_i32_align8() {58 entry:59 %0 = load i32, ptr @i32_align8, align 860 ret i32 %061 }62 63...64---65name: load_float_align166alignment: 467tracksRegLiveness: true68body: |69 bb.1.entry:70 ; MIPS32-LABEL: name: load_float_align171 ; MIPS32: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @float_align172 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @float_align1, align 1)73 ; MIPS32: $f0 = COPY [[LOAD]](s32)74 ; MIPS32: RetRA implicit $f075 ; MIPS32R6-LABEL: name: load_float_align176 ; MIPS32R6: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @float_align177 ; MIPS32R6: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @float_align1, align 1)78 ; MIPS32R6: $f0 = COPY [[LOAD]](s32)79 ; MIPS32R6: RetRA implicit $f080 %1:_(p0) = G_GLOBAL_VALUE @float_align181 %0:_(s32) = G_LOAD %1(p0) :: (dereferenceable load (s32) from @float_align1, align 1)82 $f0 = COPY %0(s32)83 RetRA implicit $f084 85...86---87name: load_float_align288alignment: 489tracksRegLiveness: true90body: |91 bb.1.entry:92 ; MIPS32-LABEL: name: load_float_align293 ; MIPS32: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @float_align294 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @float_align2, align 2)95 ; MIPS32: $f0 = COPY [[LOAD]](s32)96 ; MIPS32: RetRA implicit $f097 ; MIPS32R6-LABEL: name: load_float_align298 ; MIPS32R6: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @float_align299 ; MIPS32R6: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @float_align2, align 2)100 ; MIPS32R6: $f0 = COPY [[LOAD]](s32)101 ; MIPS32R6: RetRA implicit $f0102 %1:_(p0) = G_GLOBAL_VALUE @float_align2103 %0:_(s32) = G_LOAD %1(p0) :: (dereferenceable load (s32) from @float_align2, align 2)104 $f0 = COPY %0(s32)105 RetRA implicit $f0106 107...108---109name: load_float_align4110alignment: 4111tracksRegLiveness: true112body: |113 bb.1.entry:114 ; MIPS32-LABEL: name: load_float_align4115 ; MIPS32: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @float_align4116 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @float_align4)117 ; MIPS32: $f0 = COPY [[LOAD]](s32)118 ; MIPS32: RetRA implicit $f0119 ; MIPS32R6-LABEL: name: load_float_align4120 ; MIPS32R6: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @float_align4121 ; MIPS32R6: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @float_align4)122 ; MIPS32R6: $f0 = COPY [[LOAD]](s32)123 ; MIPS32R6: RetRA implicit $f0124 %1:_(p0) = G_GLOBAL_VALUE @float_align4125 %0:_(s32) = G_LOAD %1(p0) :: (dereferenceable load (s32) from @float_align4)126 $f0 = COPY %0(s32)127 RetRA implicit $f0128 129...130---131name: load_float_align8132alignment: 4133tracksRegLiveness: true134body: |135 bb.1.entry:136 ; MIPS32-LABEL: name: load_float_align8137 ; MIPS32: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @float_align8138 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @float_align8, align 8)139 ; MIPS32: $f0 = COPY [[LOAD]](s32)140 ; MIPS32: RetRA implicit $f0141 ; MIPS32R6-LABEL: name: load_float_align8142 ; MIPS32R6: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @float_align8143 ; MIPS32R6: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @float_align8, align 8)144 ; MIPS32R6: $f0 = COPY [[LOAD]](s32)145 ; MIPS32R6: RetRA implicit $f0146 %1:_(p0) = G_GLOBAL_VALUE @float_align8147 %0:_(s32) = G_LOAD %1(p0) :: (dereferenceable load (s32) from @float_align8, align 8)148 $f0 = COPY %0(s32)149 RetRA implicit $f0150 151...152---153name: load_i32_align1154alignment: 4155tracksRegLiveness: true156body: |157 bb.1.entry:158 ; MIPS32-LABEL: name: load_i32_align1159 ; MIPS32: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @i32_align1160 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @i32_align1, align 1)161 ; MIPS32: $v0 = COPY [[LOAD]](s32)162 ; MIPS32: RetRA implicit $v0163 ; MIPS32R6-LABEL: name: load_i32_align1164 ; MIPS32R6: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @i32_align1165 ; MIPS32R6: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @i32_align1, align 1)166 ; MIPS32R6: $v0 = COPY [[LOAD]](s32)167 ; MIPS32R6: RetRA implicit $v0168 %1:_(p0) = G_GLOBAL_VALUE @i32_align1169 %0:_(s32) = G_LOAD %1(p0) :: (dereferenceable load (s32) from @i32_align1, align 1)170 $v0 = COPY %0(s32)171 RetRA implicit $v0172 173...174---175name: load_i32_align2176alignment: 4177tracksRegLiveness: true178body: |179 bb.1.entry:180 ; MIPS32-LABEL: name: load_i32_align2181 ; MIPS32: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @i32_align2182 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @i32_align2, align 2)183 ; MIPS32: $v0 = COPY [[LOAD]](s32)184 ; MIPS32: RetRA implicit $v0185 ; MIPS32R6-LABEL: name: load_i32_align2186 ; MIPS32R6: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @i32_align2187 ; MIPS32R6: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @i32_align2, align 2)188 ; MIPS32R6: $v0 = COPY [[LOAD]](s32)189 ; MIPS32R6: RetRA implicit $v0190 %1:_(p0) = G_GLOBAL_VALUE @i32_align2191 %0:_(s32) = G_LOAD %1(p0) :: (dereferenceable load (s32) from @i32_align2, align 2)192 $v0 = COPY %0(s32)193 RetRA implicit $v0194 195...196---197name: load_i32_align4198alignment: 4199tracksRegLiveness: true200body: |201 bb.1.entry:202 ; MIPS32-LABEL: name: load_i32_align4203 ; MIPS32: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @i32_align4204 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @i32_align4)205 ; MIPS32: $v0 = COPY [[LOAD]](s32)206 ; MIPS32: RetRA implicit $v0207 ; MIPS32R6-LABEL: name: load_i32_align4208 ; MIPS32R6: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @i32_align4209 ; MIPS32R6: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @i32_align4)210 ; MIPS32R6: $v0 = COPY [[LOAD]](s32)211 ; MIPS32R6: RetRA implicit $v0212 %1:_(p0) = G_GLOBAL_VALUE @i32_align4213 %0:_(s32) = G_LOAD %1(p0) :: (dereferenceable load (s32) from @i32_align4)214 $v0 = COPY %0(s32)215 RetRA implicit $v0216 217...218---219name: load_i32_align8220alignment: 4221tracksRegLiveness: true222body: |223 bb.1.entry:224 ; MIPS32-LABEL: name: load_i32_align8225 ; MIPS32: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @i32_align8226 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @i32_align8, align 8)227 ; MIPS32: $v0 = COPY [[LOAD]](s32)228 ; MIPS32: RetRA implicit $v0229 ; MIPS32R6-LABEL: name: load_i32_align8230 ; MIPS32R6: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @i32_align8231 ; MIPS32R6: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV]](p0) :: (dereferenceable load (s32) from @i32_align8, align 8)232 ; MIPS32R6: $v0 = COPY [[LOAD]](s32)233 ; MIPS32R6: RetRA implicit $v0234 %1:_(p0) = G_GLOBAL_VALUE @i32_align8235 %0:_(s32) = G_LOAD %1(p0) :: (dereferenceable load (s32) from @i32_align8, align 8)236 $v0 = COPY %0(s32)237 RetRA implicit $v0238 239...240