97 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck -check-prefix=GCN %s3 4---5name: select_from_different_results_of_unmerge_values6tracksRegLiveness: true7body: |8 bb.0:9 liveins: $vgpr010 11 ; GCN-LABEL: name: select_from_different_results_of_unmerge_values12 ; GCN: liveins: $vgpr013 ; GCN-NEXT: {{ $}}14 ; GCN-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF15 ; GCN-NEXT: $vgpr0 = COPY [[DEF]](s32)16 ; GCN-NEXT: SI_RETURN_TO_EPILOG $vgpr017 %0:_(<2 x s32>) = G_IMPLICIT_DEF18 %1:_(s32) = COPY $vgpr019 %2:_(s1) = G_TRUNC %1:_(s32)20 %3:_(s32), %4:_(s32) = G_UNMERGE_VALUES %0:_(<2 x s32>)21 %5:_(s32) = G_SELECT %2:_(s1), %3:_, %4:_22 $vgpr0 = COPY %523 SI_RETURN_TO_EPILOG $vgpr024 25...26 27---28name: select_from_same_results_of_unmerge_values29tracksRegLiveness: true30body: |31 bb.0:32 liveins: $vgpr033 34 ; GCN-LABEL: name: select_from_same_results_of_unmerge_values35 ; GCN: liveins: $vgpr036 ; GCN-NEXT: {{ $}}37 ; GCN-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF38 ; GCN-NEXT: $vgpr0 = COPY [[DEF]](s32)39 ; GCN-NEXT: SI_RETURN_TO_EPILOG $vgpr040 %0:_(<2 x s32>) = G_IMPLICIT_DEF41 %1:_(s32) = COPY $vgpr042 %2:_(s1) = G_TRUNC %1:_(s32)43 %3:_(s32), %4:_(s32) = G_UNMERGE_VALUES %0:_(<2 x s32>)44 %5:_(s32) = G_SELECT %2:_(s1), %3:_, %3:_45 $vgpr0 = COPY %546 SI_RETURN_TO_EPILOG $vgpr047 48...49 50---51name: select_different_result_from_different_unmerge_values_with_the_same_source52tracksRegLiveness: true53body: |54 bb.0:55 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr456 57 ; GCN-LABEL: name: select_different_result_from_different_unmerge_values_with_the_same_source58 ; GCN: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr459 ; GCN-NEXT: {{ $}}60 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr361 ; GCN-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr462 ; GCN-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[COPY1]](s32)63 ; GCN-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<4 x s32>)64 ; GCN-NEXT: [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32), [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<4 x s32>)65 ; GCN-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[TRUNC]](s1), [[UV1]], [[UV7]]66 ; GCN-NEXT: $vgpr0 = COPY [[SELECT]](s32)67 %0:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr368 %1:_(s32) = COPY $vgpr469 %2:_(s1) = G_TRUNC %1:_(s32)70 %3:_(s32), %4:_(s32), %5:_(s32), %6:_(s32) = G_UNMERGE_VALUES %0:_(<4 x s32>)71 %7:_(s32), %8:_(s32), %9:_(s32), %10:_(s32) = G_UNMERGE_VALUES %0:_(<4 x s32>)72 %11:_(s32) = G_SELECT %2:_(s1), %4:_, %10:_73 $vgpr0 = COPY %1174...75 76---77name: select_same_result_from_different_unmerge_values_with_the_same_source78tracksRegLiveness: true79body: |80 bb.0:81 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr482 83 ; GCN-LABEL: name: select_same_result_from_different_unmerge_values_with_the_same_source84 ; GCN: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr485 ; GCN-NEXT: {{ $}}86 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr387 ; GCN-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<4 x s32>)88 ; GCN-NEXT: $vgpr0 = COPY [[UV1]](s32)89 %0:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr390 %1:_(s32) = COPY $vgpr491 %2:_(s1) = G_TRUNC %1:_(s32)92 %3:_(s32), %4:_(s32), %5:_(s32), %6:_(s32) = G_UNMERGE_VALUES %0:_(<4 x s32>)93 %7:_(s32), %8:_(s32), %9:_(s32), %10:_(s32) = G_UNMERGE_VALUES %0:_(<4 x s32>)94 %11:_(s32) = G_SELECT %2:_(s1), %4:_, %8:_95 $vgpr0 = COPY %1196...97