# RUN: llc -mtriple arm-- -run-pass=legalizer %s -o - | FileCheck %s
# RUN: llc -mtriple thumb-- -mattr=+v6t2 -run-pass=legalizer %s -o - | FileCheck %s
--- |
  define void @test_select_s32() { ret void }
  define void @test_select_ptr() { ret void }

  define void @test_select_s16() { ret void }
  define void @test_select_s8() { ret void }
...
---
name:            test_select_s32
# CHECK-LABEL: name: test_select_s32
legalized:       false
# CHECK: legalized: true
regBankSelected: false
selected:        false
tracksRegLiveness: true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1, $r2

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s1) = G_CONSTANT i1 1
    %3(s32) = G_SELECT %2(s1), %0, %1
    ; G_SELECT with s32 is legal, so we should find it unchanged in the output
    ; CHECK: {{%[0-9]+}}:_(s32) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}
    $r0 = COPY %3(s32)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_select_ptr
# CHECK-LABEL: name: test_select_ptr
legalized:       false
# CHECK: legalized: true
regBankSelected: false
selected:        false
tracksRegLiveness: true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1, $r2

    %0(p0) = COPY $r0
    %1(p0) = COPY $r1
    %2(s1) = G_CONSTANT i1 0
    %3(p0) = G_SELECT %2(s1), %0, %1
    ; G_SELECT with p0 is legal, so we should find it unchanged in the output
    ; CHECK: {{%[0-9]+}}:_(p0) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}
    $r0 = COPY %3(p0)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_select_s16
# CHECK-LABEL: name: test_select_s16
legalized:       false
# CHECK: legalized: true
regBankSelected: false
selected:        false
tracksRegLiveness: true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
  - { id: 4, class: _ }
  - { id: 5, class: _ }
  - { id: 6, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1, $r2

    %0(s32) = COPY $r0
    %1(s16) = G_TRUNC %0(s32)
    %2(s32) = COPY $r1
    %3(s16) = G_TRUNC %2(s32)
    %4(s1) = G_CONSTANT i1 1
    %5(s16) = G_SELECT %4(s1), %1, %3
    ; G_SELECT with s16 should extend
    ; CHECK-NOT: {{%[0-9]+}}:_(s16) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}
    ; CHECK: {{%[0-9]+}}:_(s32) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}
    ; CHECK-NOT: {{%[0-9]+}}:_(s16) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}
    %6(s32) = G_SEXT %5(s16)
    $r0 = COPY %6(s32)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_select_s8
# CHECK-LABEL: name: test_select_s8
legalized:       false
# CHECK: legalized: true
regBankSelected: false
selected:        false
tracksRegLiveness: true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
  - { id: 4, class: _ }
  - { id: 5, class: _ }
  - { id: 6, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1, $r2

    %0(s32) = COPY $r0
    %1(s8) = G_TRUNC %0(s32)
    %2(s32) = COPY $r1
    %3(s8) = G_TRUNC %2(s32)
    %4(s1) = G_CONSTANT i1 1
    %5(s8) = G_SELECT %4(s1), %1, %3
    ; G_SELECT with s8 should extend
    ; CHECK-NOT: {{%[0-9]+}}:_(s8) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}
    ; CHECK: {{%[0-9]+}}:_(s32) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}
    ; CHECK-NOT: {{%[0-9]+}}:_(s8) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}
    %6(s32) = G_SEXT %5(s8)
    $r0 = COPY %6(s32)
    BX_RET 14, $noreg, implicit $r0
...
