98 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn -mcpu=tahiti -run-pass=amdgpu-prelegalizer-combiner %s -o - | FileCheck %s3 4---5name: test_combine_or_s64_s326tracksRegLiveness: true7body: |8 bb.0:9 liveins: $sgpr0_sgpr1, $sgpr210 ; CHECK-LABEL: name: test_combine_or_s64_s3211 ; CHECK: liveins: $sgpr0_sgpr1, $sgpr212 ; CHECK-NEXT: {{ $}}13 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr114 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr215 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)16 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[UV]], [[COPY1]]17 ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR]](s32), [[UV1]](s32)18 ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[MV]](s64)19 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr120 %0:_(s64) = COPY $sgpr0_sgpr121 %1:_(s32) = COPY $sgpr222 %2:_(s64) = G_ZEXT %1(s32)23 %3:_(s64) = G_OR %0, %224 $sgpr0_sgpr1 = COPY %3(s64)25 SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr126...27---28name: test_combine_or_s64_s32_rhs29tracksRegLiveness: true30body: |31 bb.0:32 liveins: $sgpr0_sgpr1, $sgpr233 ; CHECK-LABEL: name: test_combine_or_s64_s32_rhs34 ; CHECK: liveins: $sgpr0_sgpr1, $sgpr235 ; CHECK-NEXT: {{ $}}36 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr137 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr238 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)39 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[UV]], [[COPY1]]40 ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR]](s32), [[UV1]](s32)41 ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[MV]](s64)42 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr143 %0:_(s64) = COPY $sgpr0_sgpr144 %1:_(s32) = COPY $sgpr245 %2:_(s64) = G_ZEXT %1(s32)46 %3:_(s64) = G_OR %2, %047 $sgpr0_sgpr1 = COPY %3(s64)48 SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr149...50---51name: test_combine_or_s64_s32_merge_unmerge52tracksRegLiveness: true53body: |54 bb.0:55 liveins: $sgpr0, $sgpr1, $sgpr256 ; CHECK-LABEL: name: test_combine_or_s64_s32_merge_unmerge57 ; CHECK: liveins: $sgpr0, $sgpr1, $sgpr258 ; CHECK-NEXT: {{ $}}59 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr060 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr161 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr262 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[COPY]], [[COPY2]]63 ; CHECK-NEXT: $sgpr0 = COPY [[OR]](s32)64 ; CHECK-NEXT: $sgpr1 = COPY [[COPY1]](s32)65 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr166 %0:_(s32) = COPY $sgpr067 %1:_(s32) = COPY $sgpr168 %2:_(s32) = COPY $sgpr269 %3:_(s64) = G_MERGE_VALUES %0(s32), %1(s32)70 %4:_(s64) = G_ZEXT %2(s32)71 %5:_(s64) = G_OR %3, %472 %6:_(s32), %7:_(s32) = G_UNMERGE_VALUES %5(s64)73 $sgpr0 = COPY %6(s32)74 $sgpr1 = COPY %7(s32)75 SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr176...77---78name: negative_test_incorrect_types79tracksRegLiveness: true80body: |81 bb.0:82 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr583 ; CHECK-LABEL: name: negative_test_incorrect_types84 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr585 ; CHECK-NEXT: {{ $}}86 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr387 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr588 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s128) = G_ZEXT [[COPY1]](s64)89 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s128) = G_OR [[COPY]], [[ZEXT]]90 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[OR]](s128)91 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr392 %1:_(s64) = COPY $vgpr4_vgpr593 %2:_(s128) = G_ZEXT %194 %3:_(s128) = G_OR %0, %295 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %396...97 98