131 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 22# RUN: llc -mtriple=i386-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s --check-prefixes=CHECK,X863# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s --check-prefixes=CHECK,X644 5# test select6 7...8---9name: test_selectp010body: |11 bb.1:12 ; CHECK-LABEL: name: test_selectp013 ; CHECK: [[DEF:%[0-9]+]]:_(p0) = IMPLICIT_DEF14 ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(p0) = IMPLICIT_DEF15 ; CHECK-NEXT: [[DEF2:%[0-9]+]]:_(s1) = IMPLICIT_DEF16 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[DEF2]](s1)17 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p0) = G_SELECT [[ZEXT]](s32), [[DEF1]], [[DEF]]18 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY [[SELECT]](p0)19 ; CHECK-NEXT: RET 0, implicit [[COPY]](p0)20 %0:_(p0) = IMPLICIT_DEF21 %1:_(p0) = IMPLICIT_DEF22 %2:_(s1) = IMPLICIT_DEF23 %3:_(p0) = G_SELECT %2, %1, %024 %4:_(p0) = COPY %3(p0)25 RET 0, implicit %426 27...28---29name: test_select6430body: |31 bb.1:32 ; X86-LABEL: name: test_select6433 ; X86: [[DEF:%[0-9]+]]:_(s64) = IMPLICIT_DEF34 ; X86-NEXT: [[DEF1:%[0-9]+]]:_(s64) = IMPLICIT_DEF35 ; X86-NEXT: [[DEF2:%[0-9]+]]:_(s1) = IMPLICIT_DEF36 ; X86-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[DEF2]](s1)37 ; X86-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[DEF1]](s64)38 ; X86-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[DEF]](s64)39 ; X86-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ZEXT]](s32), [[UV]], [[UV2]]40 ; X86-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ZEXT]](s32), [[UV1]], [[UV3]]41 ; X86-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)42 ; X86-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY [[MV]](s64)43 ; X86-NEXT: RET 0, implicit [[COPY]](s64)44 ;45 ; X64-LABEL: name: test_select6446 ; X64: [[DEF:%[0-9]+]]:_(s64) = IMPLICIT_DEF47 ; X64-NEXT: [[DEF1:%[0-9]+]]:_(s64) = IMPLICIT_DEF48 ; X64-NEXT: [[DEF2:%[0-9]+]]:_(s1) = IMPLICIT_DEF49 ; X64-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[DEF2]](s1)50 ; X64-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ZEXT]](s32), [[DEF1]], [[DEF]]51 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY [[SELECT]](s64)52 ; X64-NEXT: RET 0, implicit [[COPY]](s64)53 %0:_(s64) = IMPLICIT_DEF54 %1:_(s64) = IMPLICIT_DEF55 %2:_(s1) = IMPLICIT_DEF56 %3:_(s64) = G_SELECT %2, %1, %057 %4:_(s64) = COPY %3(s64)58 RET 0, implicit %459 60...61---62name: test_select3263body: |64 bb.1:65 ; CHECK-LABEL: name: test_select3266 ; CHECK: [[DEF:%[0-9]+]]:_(s32) = IMPLICIT_DEF67 ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(s32) = IMPLICIT_DEF68 ; CHECK-NEXT: [[DEF2:%[0-9]+]]:_(s1) = IMPLICIT_DEF69 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[DEF2]](s1)70 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ZEXT]](s32), [[DEF1]], [[DEF]]71 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY [[SELECT]](s32)72 ; CHECK-NEXT: RET 0, implicit [[COPY]](s32)73 %0:_(s32) = IMPLICIT_DEF74 %1:_(s32) = IMPLICIT_DEF75 %2:_(s1) = IMPLICIT_DEF76 %3:_(s32) = G_SELECT %2, %1, %077 %4:_(s32) = COPY %3(s32)78 RET 0, implicit %479 80...81---82name: test_select1683body: |84 bb.1:85 ; CHECK-LABEL: name: test_select1686 ; CHECK: [[DEF:%[0-9]+]]:_(s16) = IMPLICIT_DEF87 ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(s16) = IMPLICIT_DEF88 ; CHECK-NEXT: [[DEF2:%[0-9]+]]:_(s1) = IMPLICIT_DEF89 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[DEF2]](s1)90 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ZEXT]](s32), [[DEF1]], [[DEF]]91 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY [[SELECT]](s16)92 ; CHECK-NEXT: RET 0, implicit [[COPY]](s16)93 %0:_(s16) = IMPLICIT_DEF94 %1:_(s16) = IMPLICIT_DEF95 %2:_(s1) = IMPLICIT_DEF96 %3:_(s16) = G_SELECT %2, %1, %097 %4:_(s16) = COPY %3(s16)98 RET 0, implicit %499 100...101---102name: test_select8103body: |104 bb.1:105 ; X86-LABEL: name: test_select8106 ; X86: [[DEF:%[0-9]+]]:_(s8) = IMPLICIT_DEF107 ; X86-NEXT: [[DEF1:%[0-9]+]]:_(s8) = IMPLICIT_DEF108 ; X86-NEXT: [[DEF2:%[0-9]+]]:_(s1) = IMPLICIT_DEF109 ; X86-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[DEF2]](s1)110 ; X86-NEXT: [[SELECT:%[0-9]+]]:_(s8) = G_SELECT [[ZEXT]](s32), [[DEF1]], [[DEF]]111 ; X86-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY [[SELECT]](s8)112 ; X86-NEXT: RET 0, implicit [[COPY]](s8)113 ;114 ; X64-LABEL: name: test_select8115 ; X64: [[DEF:%[0-9]+]]:_(s8) = IMPLICIT_DEF116 ; X64-NEXT: [[DEF1:%[0-9]+]]:_(s8) = IMPLICIT_DEF117 ; X64-NEXT: [[DEF2:%[0-9]+]]:_(s1) = IMPLICIT_DEF118 ; X64-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[DEF2]](s1)119 ; X64-NEXT: [[ANYEXT:%[0-9]+]]:_(s16) = G_ANYEXT [[DEF1]](s8)120 ; X64-NEXT: [[ANYEXT1:%[0-9]+]]:_(s16) = G_ANYEXT [[DEF]](s8)121 ; X64-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ZEXT]](s32), [[ANYEXT]], [[ANYEXT1]]122 ; X64-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SELECT]](s16)123 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY [[TRUNC]](s8)124 ; X64-NEXT: RET 0, implicit [[COPY]](s8)125 %0:_(s8) = IMPLICIT_DEF126 %1:_(s8) = IMPLICIT_DEF127 %2:_(s1) = IMPLICIT_DEF128 %3:_(s8) = G_SELECT %2, %1, %0129 %4:_(s8) = COPY %3(s8)130 RET 0, implicit %4131