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--- | 4 5 define void @store_i32(i32* %ptr) { entry: ret void } 6 define void @store_i64(i64* %ptr) { entry: ret void } 7 define void @store_float(float* %ptr) { entry: ret void } 8 define void @store_double(double* %ptr) { entry: ret void } 9 10... 11--- 12name: store_i32 13alignment: 4 14legalized: true 15tracksRegLiveness: true 16body: | 17 bb.1.entry: 18 liveins: $a0, $a1 19 20 ; MIPS32-LABEL: name: store_i32 21 ; MIPS32: liveins: $a0, $a1 22 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 23 ; MIPS32: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 24 ; MIPS32: G_STORE [[COPY]](s32), [[COPY1]](p0) :: (store 4 into %ir.ptr) 25 ; MIPS32: RetRA 26 %0:_(s32) = COPY $a0 27 %1:_(p0) = COPY $a1 28 G_STORE %0(s32), %1(p0) :: (store 4 into %ir.ptr) 29 RetRA 30 31... 32--- 33name: store_i64 34alignment: 4 35legalized: true 36tracksRegLiveness: true 37body: | 38 bb.1.entry: 39 liveins: $a0, $a1, $a2 40 41 ; MIPS32-LABEL: name: store_i64 42 ; MIPS32: liveins: $a0, $a1, $a2 43 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 44 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 45 ; MIPS32: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32) 46 ; MIPS32: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 47 ; MIPS32: G_STORE [[MV]](s64), [[COPY2]](p0) :: (store 8 into %ir.ptr) 48 ; MIPS32: RetRA 49 %2:_(s32) = COPY $a0 50 %3:_(s32) = COPY $a1 51 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 52 %1:_(p0) = COPY $a2 53 G_STORE %0(s64), %1(p0) :: (store 8 into %ir.ptr) 54 RetRA 55 56... 57--- 58name: store_float 59alignment: 4 60legalized: true 61tracksRegLiveness: true 62body: | 63 bb.1.entry: 64 liveins: $a1, $f12 65 66 ; MIPS32-LABEL: name: store_float 67 ; MIPS32: liveins: $a1, $f12 68 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $f12 69 ; MIPS32: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 70 ; MIPS32: G_STORE [[COPY]](s32), [[COPY1]](p0) :: (store 4 into %ir.ptr) 71 ; MIPS32: RetRA 72 %0:_(s32) = COPY $f12 73 %1:_(p0) = COPY $a1 74 G_STORE %0(s32), %1(p0) :: (store 4 into %ir.ptr) 75 RetRA 76 77... 78--- 79name: store_double 80alignment: 4 81legalized: true 82tracksRegLiveness: true 83body: | 84 bb.1.entry: 85 liveins: $a2, $d6 86 87 ; MIPS32-LABEL: name: store_double 88 ; MIPS32: liveins: $a2, $d6 89 ; MIPS32: [[COPY:%[0-9]+]]:_(s64) = COPY $d6 90 ; MIPS32: [[COPY1:%[0-9]+]]:_(p0) = COPY $a2 91 ; MIPS32: G_STORE [[COPY]](s64), [[COPY1]](p0) :: (store 8 into %ir.ptr) 92 ; MIPS32: RetRA 93 %0:_(s64) = COPY $d6 94 %1:_(p0) = COPY $a2 95 G_STORE %0(s64), %1(p0) :: (store 8 into %ir.ptr) 96 RetRA 97 98... 99