92 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -run-pass=aarch64-mi-peephole-opt -o - -mtriple=aarch64-unknown-linux -verify-machineinstrs %s | FileCheck %s3---4name: copy_fpr128_gpr325body: |6 bb.0:7 liveins: $q08 ; CHECK-LABEL: name: copy_fpr128_gpr329 ; CHECK: liveins: $q010 ; CHECK-NEXT: {{ $}}11 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q012 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY [[COPY]].ssub13 ; CHECK-NEXT: [[FMOVSWr:%[0-9]+]]:gpr32 = FMOVSWr [[COPY1]]14 %0:fpr128 = COPY $q015 %1:gpr32 = COPY %0.ssub:fpr12816 %2:gpr32 = ORRWrs $wzr, killed %1:gpr32, 017...18---19name: copy_fpr32_gpr3220body: |21 bb.0:22 liveins: $s023 ; CHECK-LABEL: name: copy_fpr32_gpr3224 ; CHECK: liveins: $s025 ; CHECK-NEXT: {{ $}}26 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $s027 ; CHECK-NEXT: [[FMOVSWr:%[0-9]+]]:gpr32 = FMOVSWr [[COPY]]28 %0:fpr32 = COPY $s029 %1:gpr32 = COPY %0:fpr3230 %2:gpr32 = ORRWrs $wzr, killed %1:gpr32, 031...32---33name: copy_zpr_gpr3234body: |35 bb.0:36 liveins: $z037 ; CHECK-LABEL: name: copy_zpr_gpr3238 ; CHECK: liveins: $z039 ; CHECK-NEXT: {{ $}}40 ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z041 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY [[COPY]].ssub42 ; CHECK-NEXT: [[FMOVSWr:%[0-9]+]]:gpr32 = FMOVSWr [[COPY1]]43 %0:zpr = COPY $z044 %1:gpr32 = COPY %0.ssub:zpr45 %2:gpr32 = ORRWrs $wzr, killed %1:gpr32, 046...47---48name: copy_multiple_uses49tracksRegLiveness: true50body: |51 ; CHECK-LABEL: name: copy_multiple_uses52 ; CHECK: bb.0.entry:53 ; CHECK-NEXT: successors: %bb.1(0x80000000)54 ; CHECK-NEXT: liveins: $w0, $q055 ; CHECK-NEXT: {{ $}}56 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q057 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY $w058 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr32sp = COPY $w059 ; CHECK-NEXT: B %bb.160 ; CHECK-NEXT: {{ $}}61 ; CHECK-NEXT: bb.1:62 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)63 ; CHECK-NEXT: {{ $}}64 ; CHECK-NEXT: [[SUBSWri:%[0-9]+]]:gpr32 = SUBSWri [[COPY2]], 1, 0, implicit-def $nzcv65 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:fpr32 = COPY [[COPY]].ssub66 ; CHECK-NEXT: [[FMOVSWr:%[0-9]+]]:gpr32 = FMOVSWr [[COPY3]]67 ; CHECK-NEXT: [[ADDWrr:%[0-9]+]]:gpr32 = ADDWrr [[FMOVSWr]], [[SUBSWri]]68 ; CHECK-NEXT: Bcc 2, %bb.1, implicit $nzcv69 ; CHECK-NEXT: B %bb.270 ; CHECK-NEXT: {{ $}}71 ; CHECK-NEXT: bb.2:72 ; CHECK-NEXT: $w0 = COPY [[ADDWrr]]73 ; CHECK-NEXT: RET_ReallyLR implicit $w074 bb.0.entry:75 liveins: $w0, $q076 %0:fpr128 = COPY $q077 %1:gpr32 = COPY $w078 %6:gpr32sp = COPY $w079 B %bb.180 81 bb.1:82 %7:gpr32 = SUBSWri %6, 1, 0, implicit-def $nzcv83 %2:gpr32 = COPY %0.ssub:fpr12884 %3:gpr32 = ORRWrs $wzr, %2:gpr32, 085 %5:gpr32 = ADDWrr %2:gpr32, %7:gpr3286 Bcc 2, %bb.1, implicit $nzcv87 B %bb.288 89 bb.2:90 $w0 = COPY %591 RET_ReallyLR implicit $w092