134 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -global-isel-abort=1 -verify-machineinstrs %s -o - | FileCheck %s3 4--- |5 target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"6 7 define void @trunc_s32_s64() { ret void }8 define void @trunc_s8_s64() { ret void }9 define void @trunc_s8_s32() { ret void }10 define void @trunc_s64_s128() { ret void }11 define void @trunc_s32_s128() { ret void }12...13 14---15name: trunc_s32_s6416legalized: true17regBankSelected: true18 19registers:20 - { id: 0, class: gpr }21 - { id: 1, class: gpr }22 23body: |24 bb.0:25 liveins: $x026 27 ; CHECK-LABEL: name: trunc_s32_s6428 ; CHECK: liveins: $x029 ; CHECK-NEXT: {{ $}}30 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64sp = COPY $x031 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32sp = COPY [[COPY]].sub_3232 ; CHECK-NEXT: $w0 = COPY [[COPY1]]33 %0(s64) = COPY $x034 %1(s32) = G_TRUNC %035 $w0 = COPY %1(s32)36...37 38---39name: trunc_s8_s6440legalized: true41regBankSelected: true42 43registers:44 - { id: 0, class: gpr }45 - { id: 1, class: gpr }46 47body: |48 bb.0:49 liveins: $x050 51 ; CHECK-LABEL: name: trunc_s8_s6452 ; CHECK: liveins: $x053 ; CHECK-NEXT: {{ $}}54 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x055 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY [[COPY]].sub_3256 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr32all = COPY [[COPY1]]57 ; CHECK-NEXT: $w0 = COPY [[COPY2]]58 %0(s64) = COPY $x059 %1(s8) = G_TRUNC %060 %2:gpr(s32) = G_ANYEXT %161 $w0 = COPY %2(s32)62...63 64---65name: trunc_s8_s3266legalized: true67regBankSelected: true68 69registers:70 - { id: 0, class: gpr }71 - { id: 1, class: gpr }72 73body: |74 bb.0:75 liveins: $w076 77 ; CHECK-LABEL: name: trunc_s8_s3278 ; CHECK: liveins: $w079 ; CHECK-NEXT: {{ $}}80 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w081 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32all = COPY [[COPY]]82 ; CHECK-NEXT: $w0 = COPY [[COPY1]]83 %0(s32) = COPY $w084 %1(s8) = G_TRUNC %085 %2:gpr(s32) = G_ANYEXT %186 $w0 = COPY %2(s32)87...88 89---90name: trunc_s64_s12891legalized: true92regBankSelected: true93registers:94 - { id: 0, class: fpr }95 - { id: 1, class: fpr }96 97body: |98 bb.0:99 liveins: $q0100 101 ; CHECK-LABEL: name: trunc_s64_s128102 ; CHECK: liveins: $q0103 ; CHECK-NEXT: {{ $}}104 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0105 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY [[COPY]].dsub106 ; CHECK-NEXT: $x0 = COPY [[COPY1]]107 %0(s128) = COPY $q0108 %1(s64) = G_TRUNC %0109 $x0 = COPY %1(s64)110...111 112---113name: trunc_s32_s128114legalized: true115regBankSelected: true116registers:117 - { id: 0, class: fpr }118 - { id: 1, class: fpr }119 120body: |121 bb.0:122 liveins: $q0123 124 ; CHECK-LABEL: name: trunc_s32_s128125 ; CHECK: liveins: $q0126 ; CHECK-NEXT: {{ $}}127 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0128 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY [[COPY]].ssub129 ; CHECK-NEXT: $w0 = COPY [[COPY1]]130 %0(s128) = COPY $q0131 %1(s32) = G_TRUNC %0132 $w0 = COPY %1(s32)133...134