brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · fd12932 Raw
126 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2; RUN: llc -mtriple=aarch64-unknown-unknown -global-isel -global-isel-abort=1 -verify-machineinstrs -stop-after=irtranslator %s -o - | FileCheck %s3 4define void @copy(ptr %dst, ptr %src) {5  ; CHECK-LABEL: name: copy6  ; CHECK: bb.1.entry:7  ; CHECK:   liveins: $x0, $x18  ; CHECK:   [[COPY:%[0-9]+]]:_(p0) = COPY $x09  ; CHECK:   [[COPY1:%[0-9]+]]:_(p0) = COPY $x110  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 411  ; CHECK:   [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[C]](s32)12  ; CHECK:   G_MEMCPY [[COPY]](p0), [[COPY1]](p0), [[ZEXT]](s64), 0 :: (store (s8) into %ir.dst), (load (s8) from %ir.src)13  ; CHECK:   RET_ReallyLR14entry:15  call void @llvm.memcpy.p0.p0.i32(ptr %dst, ptr %src, i32 4, i1 false)16  ret void17}18 19define void @inline_copy(ptr %dst, ptr %src) {20  ; CHECK-LABEL: name: inline_copy21  ; CHECK: bb.1.entry:22  ; CHECK:   liveins: $x0, $x123  ; CHECK:   [[COPY:%[0-9]+]]:_(p0) = COPY $x024  ; CHECK:   [[COPY1:%[0-9]+]]:_(p0) = COPY $x125  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 426  ; CHECK:   [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[C]](s32)27  ; CHECK:   G_MEMCPY_INLINE [[COPY]](p0), [[COPY1]](p0), [[ZEXT]](s64) :: (store (s8) into %ir.dst), (load (s8) from %ir.src)28  ; CHECK:   RET_ReallyLR29entry:30  call void @llvm.memcpy.inline.p0.p0.i32(ptr %dst, ptr %src, i32 4, i1 false)31  ret void32}33 34define void @copy_volatile(ptr %dst, ptr %src) {35  ; CHECK-LABEL: name: copy_volatile36  ; CHECK: bb.1.entry:37  ; CHECK:   liveins: $x0, $x138  ; CHECK:   [[COPY:%[0-9]+]]:_(p0) = COPY $x039  ; CHECK:   [[COPY1:%[0-9]+]]:_(p0) = COPY $x140  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 441  ; CHECK:   [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[C]](s32)42  ; CHECK:   G_MEMCPY [[COPY]](p0), [[COPY1]](p0), [[ZEXT]](s64), 0 :: (volatile store (s8) into %ir.dst), (volatile load (s8) from %ir.src)43  ; CHECK:   RET_ReallyLR44entry:45  call void @llvm.memcpy.p0.p0.i32(ptr %dst, ptr %src, i32 4, i1 true)46  ret void47}48 49define void @inline_copy_volatile(ptr %dst, ptr %src) {50  ; CHECK-LABEL: name: inline_copy_volatile51  ; CHECK: bb.1.entry:52  ; CHECK:   liveins: $x0, $x153  ; CHECK:   [[COPY:%[0-9]+]]:_(p0) = COPY $x054  ; CHECK:   [[COPY1:%[0-9]+]]:_(p0) = COPY $x155  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 456  ; CHECK:   [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[C]](s32)57  ; CHECK:   G_MEMCPY_INLINE [[COPY]](p0), [[COPY1]](p0), [[ZEXT]](s64) :: (volatile store (s8) into %ir.dst), (volatile load (s8) from %ir.src)58  ; CHECK:   RET_ReallyLR59entry:60  call void @llvm.memcpy.inline.p0.p0.i32(ptr %dst, ptr %src, i32 4, i1 true)61  ret void62}63 64define void @tail_copy(ptr %dst, ptr %src) {65  ; CHECK-LABEL: name: tail_copy66  ; CHECK: bb.1.entry:67  ; CHECK:   liveins: $x0, $x168  ; CHECK:   [[COPY:%[0-9]+]]:_(p0) = COPY $x069  ; CHECK:   [[COPY1:%[0-9]+]]:_(p0) = COPY $x170  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 471  ; CHECK:   [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[C]](s32)72  ; CHECK:   G_MEMCPY [[COPY]](p0), [[COPY1]](p0), [[ZEXT]](s64), 1 :: (store (s8) into %ir.dst), (load (s8) from %ir.src)73  ; CHECK:   RET_ReallyLR74entry:75  tail call void @llvm.memcpy.p0.p0.i32(ptr %dst, ptr %src, i32 4, i1 false)76  ret void77}78 79define void @tail_inline_copy(ptr %dst, ptr %src) {80  ; CHECK-LABEL: name: tail_inline_copy81  ; CHECK: bb.1.entry:82  ; CHECK:   liveins: $x0, $x183  ; CHECK:   [[COPY:%[0-9]+]]:_(p0) = COPY $x084  ; CHECK:   [[COPY1:%[0-9]+]]:_(p0) = COPY $x185  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 486  ; CHECK:   [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[C]](s32)87  ; CHECK:   G_MEMCPY_INLINE [[COPY]](p0), [[COPY1]](p0), [[ZEXT]](s64) :: (store (s8) into %ir.dst), (load (s8) from %ir.src)88  ; CHECK:   RET_ReallyLR89entry:90  tail call void @llvm.memcpy.inline.p0.p0.i32(ptr %dst, ptr %src, i32 4, i1 false)91  ret void92}93 94define void @tail_copy_volatile(ptr %dst, ptr %src) {95  ; CHECK-LABEL: name: tail_copy_volatile96  ; CHECK: bb.1.entry:97  ; CHECK:   liveins: $x0, $x198  ; CHECK:   [[COPY:%[0-9]+]]:_(p0) = COPY $x099  ; CHECK:   [[COPY1:%[0-9]+]]:_(p0) = COPY $x1100  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4101  ; CHECK:   [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[C]](s32)102  ; CHECK:   G_MEMCPY [[COPY]](p0), [[COPY1]](p0), [[ZEXT]](s64), 1 :: (volatile store (s8) into %ir.dst), (volatile load (s8) from %ir.src)103  ; CHECK:   RET_ReallyLR104entry:105  tail call void @llvm.memcpy.p0.p0.i32(ptr %dst, ptr %src, i32 4, i1 true)106  ret void107}108 109define void @tail_inline_copy_volatile(ptr %dst, ptr %src) {110  ; CHECK-LABEL: name: tail_inline_copy_volatile111  ; CHECK: bb.1.entry:112  ; CHECK:   liveins: $x0, $x1113  ; CHECK:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0114  ; CHECK:   [[COPY1:%[0-9]+]]:_(p0) = COPY $x1115  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4116  ; CHECK:   [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[C]](s32)117  ; CHECK:   G_MEMCPY_INLINE [[COPY]](p0), [[COPY1]](p0), [[ZEXT]](s64) :: (volatile store (s8) into %ir.dst), (volatile load (s8) from %ir.src)118  ; CHECK:   RET_ReallyLR119entry:120  tail call void @llvm.memcpy.inline.p0.p0.i32(ptr %dst, ptr %src, i32 4, i1 true)121  ret void122}123 124declare void @llvm.memcpy.p0.p0.i32(ptr nocapture writeonly, ptr nocapture readonly, i32, i1) nounwind125declare void @llvm.memcpy.inline.p0.p0.i32(ptr nocapture writeonly, ptr nocapture readonly, i32, i1) nounwind126