brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.7 KiB · bbb6fda Raw
135 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple aarch64 -verify-machineinstrs -run-pass=legalizer -debugify-and-strip-all-safe %s -o - | FileCheck %s3 4---5name:            narrow_scalar_sadde_s1286body:             |7  bb.0.entry:8    ; CHECK-LABEL: name: narrow_scalar_sadde_s1289    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x010    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x212    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $x313    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $x414    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY4]](s64)15    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 116    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[TRUNC]], [[C]]17    ; CHECK-NEXT: [[UADDE:%[0-9]+]]:_(s64), [[UADDE1:%[0-9]+]]:_(s32) = G_UADDE [[COPY]], [[COPY2]], [[AND]]18    ; CHECK-NEXT: [[SADDE:%[0-9]+]]:_(s64), [[SADDE1:%[0-9]+]]:_(s32) = G_SADDE [[COPY1]], [[COPY3]], [[UADDE1]]19    ; CHECK-NEXT: %carry_out_ext:_(s64) = G_ANYEXT [[SADDE1]](s32)20    ; CHECK-NEXT: $x0 = COPY [[UADDE]](s64)21    ; CHECK-NEXT: $x1 = COPY [[SADDE]](s64)22    ; CHECK-NEXT: $x2 = COPY %carry_out_ext(s64)23    %0:_(s64) = COPY $x024    %1:_(s64) = COPY $x125    %2:_(s64) = COPY $x226    %3:_(s64) = COPY $x327    %4:_(s64) = COPY $x428    %lhs:_(s128) = G_MERGE_VALUES %0, %129    %rhs:_(s128) = G_MERGE_VALUES %2, %330    %carry_in:_(s1) = G_TRUNC %431    %add:_(s128), %carry_out:_(s1) = G_SADDE %lhs, %rhs, %carry_in32    %add0:_(s64), %add1:_(s64) = G_UNMERGE_VALUES %add33    %carry_out_ext:_(s64) = G_ANYEXT %carry_out34    $x0 = COPY %add035    $x1 = COPY %add136    $x2 = COPY %carry_out_ext37 38...39---40name:            narrow_scalar_sadde_big_nonpow241body:             |42  bb.0.entry:43    ; CHECK-LABEL: name: narrow_scalar_sadde_big_nonpow244    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x045    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x146    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x247    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $x348    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $x449    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY4]](s64)50    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 151    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[TRUNC]], [[C]]52    ; CHECK-NEXT: [[UADDE:%[0-9]+]]:_(s64), [[UADDE1:%[0-9]+]]:_(s32) = G_UADDE [[COPY]], [[COPY1]], [[AND]]53    ; CHECK-NEXT: [[UADDE2:%[0-9]+]]:_(s64), [[UADDE3:%[0-9]+]]:_(s32) = G_UADDE [[COPY1]], [[COPY2]], [[UADDE1]]54    ; CHECK-NEXT: [[SADDE:%[0-9]+]]:_(s64), [[SADDE1:%[0-9]+]]:_(s32) = G_SADDE [[COPY2]], [[COPY3]], [[UADDE3]]55    ; CHECK-NEXT: %carry_out_ext:_(s64) = G_ANYEXT [[SADDE1]](s32)56    ; CHECK-NEXT: $x0 = COPY [[UADDE]](s64)57    ; CHECK-NEXT: $x1 = COPY [[UADDE2]](s64)58    ; CHECK-NEXT: $x2 = COPY [[SADDE]](s64)59    ; CHECK-NEXT: $x3 = COPY %carry_out_ext(s64)60    %0:_(s64) = COPY $x061    %1:_(s64) = COPY $x162    %2:_(s64) = COPY $x263    %3:_(s64) = COPY $x364    %4:_(s64) = COPY $x465    %lhs:_(s192) = G_MERGE_VALUES %0, %1, %266    %rhs:_(s192) = G_MERGE_VALUES %1, %2, %367    %carry_in:_(s1) = G_TRUNC %468    %add:_(s192), %carry_out:_(s1) = G_SADDE %lhs, %rhs, %carry_in69    %add0:_(s64), %add1:_(s64), %add2:_(s64) = G_UNMERGE_VALUES %add70    %carry_out_ext:_(s64) = G_ANYEXT %carry_out71    $x0 = COPY %add072    $x1 = COPY %add173    $x2 = COPY %add274    $x3 = COPY %carry_out_ext75 76...77---78name:            widen_scalar_sadde_s879body:             |80  bb.0.entry:81    ; CHECK-LABEL: name: widen_scalar_sadde_s882    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x083    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x184    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x285    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)86    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[TRUNC]], 887    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)88    ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s32) = G_SEXT_INREG [[TRUNC1]], 889    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s32) = G_TRUNC [[COPY2]](s64)90    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 191    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[TRUNC2]], [[C]]92    ; CHECK-NEXT: [[UADDE:%[0-9]+]]:_(s32), [[UADDE1:%[0-9]+]]:_(s32) = G_UADDE [[SEXT_INREG]], [[SEXT_INREG1]], [[AND]]93    ; CHECK-NEXT: [[SEXT_INREG2:%[0-9]+]]:_(s32) = G_SEXT_INREG [[UADDE]], 894    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[UADDE]](s32), [[SEXT_INREG2]]95    ; CHECK-NEXT: %add_ext:_(s64) = G_ANYEXT [[UADDE]](s32)96    ; CHECK-NEXT: %carry_out_ext:_(s64) = G_ANYEXT [[ICMP]](s32)97    ; CHECK-NEXT: $x0 = COPY %add_ext(s64)98    ; CHECK-NEXT: $x1 = COPY %carry_out_ext(s64)99    %0:_(s64) = COPY $x0100    %1:_(s64) = COPY $x1101    %2:_(s64) = COPY $x2102    %lhs:_(s8) = G_TRUNC %0103    %rhs:_(s8) = G_TRUNC %1104    %carry_in:_(s1) = G_TRUNC %2105    %add:_(s8), %carry_out:_(s1) = G_SADDE %lhs, %rhs, %carry_in106    %add_ext:_(s64) = G_ANYEXT %add107    %carry_out_ext:_(s64) = G_ANYEXT %carry_out108    $x0 = COPY %add_ext109    $x1 = COPY %carry_out_ext110 111...112---113name:            test_scalar_sadde_32114body:             |115  bb.0.entry:116    ; CHECK-LABEL: name: test_scalar_sadde_32117    ; CHECK: %lhs:_(s32) = COPY $w0118    ; CHECK-NEXT: %rhs:_(s32) = COPY $w1119    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w2120    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1121    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]122    ; CHECK-NEXT: %add:_(s32), %8:_(s32) = G_SADDE %lhs, %rhs, [[AND]]123    ; CHECK-NEXT: $w0 = COPY %add(s32)124    ; CHECK-NEXT: $w1 = COPY %8(s32)125    %lhs:_(s32) = COPY $w0126    %rhs:_(s32) = COPY $w1127    %2:_(s32) = COPY $w2128    %carry_in:_(s1) = G_TRUNC %2129    %add:_(s32), %carry_out:_(s1) = G_SADDE %lhs, %rhs, %carry_in130    %carry_out_ext:_(s32) = G_ANYEXT %carry_out131    $w0 = COPY %add132    $w1 = COPY %carry_out_ext133 134...135