; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=arm-eabi-unknown-unknown | FileCheck %s --check-prefix=ARM
; RUN: llc < %s -mtriple=thumbv6t2-eabi-unknown-unknown | FileCheck %s --check-prefix=THUMB2
; RUN: llc < %s -mtriple=thumb-eabi-unknown-unknown | FileCheck %s --check-prefix=THUMB

; Select of constants: control flow / conditional moves can always be replaced by logic+math (but may not be worth it?).
; Test the zeroext/signext variants of each pattern to see if that makes a difference.

; select Cond, 0, 1 --> zext (!Cond)

define i32 @select_0_or_1(i1 %cond) {
; ARM-LABEL: select_0_or_1:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #1
; ARM-NEXT:    bic r0, r1, r0
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_0_or_1:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    movs r1, #1
; THUMB2-NEXT:    bic.w r0, r1, r0
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_0_or_1:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    movs r1, #1
; THUMB-NEXT:    bics r1, r0
; THUMB-NEXT:    movs r0, r1
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 0, i32 1
  ret i32 %sel
}

define i32 @select_0_or_1_zeroext(i1 zeroext %cond) {
; ARM-LABEL: select_0_or_1_zeroext:
; ARM:       @ %bb.0:
; ARM-NEXT:    eor r0, r0, #1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_0_or_1_zeroext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    eor r0, r0, #1
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_0_or_1_zeroext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    movs r1, #1
; THUMB-NEXT:    eors r0, r1
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 0, i32 1
  ret i32 %sel
}

define i32 @select_0_or_1_signext(i1 signext %cond) {
; ARM-LABEL: select_0_or_1_signext:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #1
; ARM-NEXT:    bic r0, r1, r0
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_0_or_1_signext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    movs r1, #1
; THUMB2-NEXT:    bic.w r0, r1, r0
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_0_or_1_signext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    movs r1, #1
; THUMB-NEXT:    bics r1, r0
; THUMB-NEXT:    movs r0, r1
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 0, i32 1
  ret i32 %sel
}

; select Cond, 1, 0 --> zext (Cond)

define i32 @select_1_or_0(i1 %cond) {
; ARM-LABEL: select_1_or_0:
; ARM:       @ %bb.0:
; ARM-NEXT:    and r0, r0, #1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_1_or_0:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    and r0, r0, #1
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_1_or_0:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    movs r1, #1
; THUMB-NEXT:    ands r0, r1
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 1, i32 0
  ret i32 %sel
}

define i32 @select_1_or_0_zeroext(i1 zeroext %cond) {
; ARM-LABEL: select_1_or_0_zeroext:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_1_or_0_zeroext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_1_or_0_zeroext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 1, i32 0
  ret i32 %sel
}

define i32 @select_1_or_0_signext(i1 signext %cond) {
; ARM-LABEL: select_1_or_0_signext:
; ARM:       @ %bb.0:
; ARM-NEXT:    and r0, r0, #1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_1_or_0_signext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    and r0, r0, #1
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_1_or_0_signext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    movs r1, #1
; THUMB-NEXT:    ands r0, r1
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 1, i32 0
  ret i32 %sel
}

; select Cond, 0, -1 --> sext (!Cond)

define i32 @select_0_or_neg1(i1 %cond) {
; ARM-LABEL: select_0_or_neg1:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #1
; ARM-NEXT:    bic r0, r1, r0
; ARM-NEXT:    rsb r0, r0, #0
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_0_or_neg1:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    movs r1, #1
; THUMB2-NEXT:    bic.w r0, r1, r0
; THUMB2-NEXT:    rsbs r0, r0, #0
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_0_or_neg1:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    movs r1, #1
; THUMB-NEXT:    bics r1, r0
; THUMB-NEXT:    rsbs r0, r1, #0
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 0, i32 -1
  ret i32 %sel
}

define i32 @select_0_or_neg1_zeroext(i1 zeroext %cond) {
; ARM-LABEL: select_0_or_neg1_zeroext:
; ARM:       @ %bb.0:
; ARM-NEXT:    eor r0, r0, #1
; ARM-NEXT:    rsb r0, r0, #0
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_0_or_neg1_zeroext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    eor r0, r0, #1
; THUMB2-NEXT:    rsbs r0, r0, #0
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_0_or_neg1_zeroext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    movs r1, #1
; THUMB-NEXT:    eors r1, r0
; THUMB-NEXT:    rsbs r0, r1, #0
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 0, i32 -1
  ret i32 %sel
}

define i32 @select_0_or_neg1_signext(i1 signext %cond) {
; ARM-LABEL: select_0_or_neg1_signext:
; ARM:       @ %bb.0:
; ARM-NEXT:    mvn r0, r0
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_0_or_neg1_signext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    mvns r0, r0
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_0_or_neg1_signext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    mvns r0, r0
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 0, i32 -1
  ret i32 %sel
}

define i32 @select_0_or_neg1_alt(i1 %cond) {
; ARM-LABEL: select_0_or_neg1_alt:
; ARM:       @ %bb.0:
; ARM-NEXT:    and r0, r0, #1
; ARM-NEXT:    sub r0, r0, #1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_0_or_neg1_alt:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    and r0, r0, #1
; THUMB2-NEXT:    subs r0, #1
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_0_or_neg1_alt:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    movs r1, #1
; THUMB-NEXT:    ands r1, r0
; THUMB-NEXT:    subs r0, r1, #1
; THUMB-NEXT:    bx lr
  %z = zext i1 %cond to i32
  %add = add i32 %z, -1
  ret i32 %add
}

define i32 @select_0_or_neg1_alt_zeroext(i1 zeroext %cond) {
; ARM-LABEL: select_0_or_neg1_alt_zeroext:
; ARM:       @ %bb.0:
; ARM-NEXT:    sub r0, r0, #1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_0_or_neg1_alt_zeroext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    subs r0, #1
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_0_or_neg1_alt_zeroext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    subs r0, r0, #1
; THUMB-NEXT:    bx lr
  %z = zext i1 %cond to i32
  %add = add i32 %z, -1
  ret i32 %add
}

define i32 @select_0_or_neg1_alt_signext(i1 signext %cond) {
; ARM-LABEL: select_0_or_neg1_alt_signext:
; ARM:       @ %bb.0:
; ARM-NEXT:    mvn r0, r0
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_0_or_neg1_alt_signext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    mvns r0, r0
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_0_or_neg1_alt_signext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    mvns r0, r0
; THUMB-NEXT:    bx lr
  %z = zext i1 %cond to i32
  %add = add i32 %z, -1
  ret i32 %add
}

; select Cond, -1, 0 --> sext (Cond)

define i32 @select_neg1_or_0(i1 %cond) {
; ARM-LABEL: select_neg1_or_0:
; ARM:       @ %bb.0:
; ARM-NEXT:    and r0, r0, #1
; ARM-NEXT:    rsb r0, r0, #0
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_neg1_or_0:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    and r0, r0, #1
; THUMB2-NEXT:    rsbs r0, r0, #0
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_neg1_or_0:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    movs r1, #1
; THUMB-NEXT:    ands r1, r0
; THUMB-NEXT:    rsbs r0, r1, #0
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 -1, i32 0
  ret i32 %sel
}

define i32 @select_neg1_or_0_zeroext(i1 zeroext %cond) {
; ARM-LABEL: select_neg1_or_0_zeroext:
; ARM:       @ %bb.0:
; ARM-NEXT:    rsb r0, r0, #0
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_neg1_or_0_zeroext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    rsbs r0, r0, #0
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_neg1_or_0_zeroext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    rsbs r0, r0, #0
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 -1, i32 0
  ret i32 %sel
}

define i32 @select_neg1_or_0_signext(i1 signext %cond) {
; ARM-LABEL: select_neg1_or_0_signext:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_neg1_or_0_signext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_neg1_or_0_signext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 -1, i32 0
  ret i32 %sel
}

; select Cond, C+1, C --> add (zext Cond), C

define i32 @select_Cplus1_C(i1 %cond) {
; ARM-LABEL: select_Cplus1_C:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #41
; ARM-NEXT:    tst r0, #1
; ARM-NEXT:    movne r1, #42
; ARM-NEXT:    mov r0, r1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_Cplus1_C:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    lsls r0, r0, #31
; THUMB2-NEXT:    mov.w r0, #41
; THUMB2-NEXT:    it ne
; THUMB2-NEXT:    movne r0, #42
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_Cplus1_C:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    lsls r0, r0, #31
; THUMB-NEXT:    bne .LBB15_2
; THUMB-NEXT:  @ %bb.1:
; THUMB-NEXT:    movs r0, #41
; THUMB-NEXT:    bx lr
; THUMB-NEXT:  .LBB15_2:
; THUMB-NEXT:    movs r0, #42
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 42, i32 41
  ret i32 %sel
}

define i32 @select_Cplus1_C_zeroext(i1 zeroext %cond) {
; ARM-LABEL: select_Cplus1_C_zeroext:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #41
; ARM-NEXT:    cmp r0, #0
; ARM-NEXT:    movne r1, #42
; ARM-NEXT:    mov r0, r1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_Cplus1_C_zeroext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    movs r1, #41
; THUMB2-NEXT:    cmp r0, #0
; THUMB2-NEXT:    it ne
; THUMB2-NEXT:    movne r1, #42
; THUMB2-NEXT:    mov r0, r1
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_Cplus1_C_zeroext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    cmp r0, #0
; THUMB-NEXT:    bne .LBB16_2
; THUMB-NEXT:  @ %bb.1:
; THUMB-NEXT:    movs r0, #41
; THUMB-NEXT:    bx lr
; THUMB-NEXT:  .LBB16_2:
; THUMB-NEXT:    movs r0, #42
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 42, i32 41
  ret i32 %sel
}

define i32 @select_Cplus1_C_signext(i1 signext %cond) {
; ARM-LABEL: select_Cplus1_C_signext:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #41
; ARM-NEXT:    tst r0, #1
; ARM-NEXT:    movne r1, #42
; ARM-NEXT:    mov r0, r1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_Cplus1_C_signext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    lsls r0, r0, #31
; THUMB2-NEXT:    mov.w r0, #41
; THUMB2-NEXT:    it ne
; THUMB2-NEXT:    movne r0, #42
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_Cplus1_C_signext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    lsls r0, r0, #31
; THUMB-NEXT:    bne .LBB17_2
; THUMB-NEXT:  @ %bb.1:
; THUMB-NEXT:    movs r0, #41
; THUMB-NEXT:    bx lr
; THUMB-NEXT:  .LBB17_2:
; THUMB-NEXT:    movs r0, #42
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 42, i32 41
  ret i32 %sel
}

; select Cond, C, C+1 --> add (sext Cond), C

define i32 @select_C_Cplus1(i1 %cond) {
; ARM-LABEL: select_C_Cplus1:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #42
; ARM-NEXT:    tst r0, #1
; ARM-NEXT:    movne r1, #41
; ARM-NEXT:    mov r0, r1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_C_Cplus1:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    lsls r0, r0, #31
; THUMB2-NEXT:    mov.w r0, #42
; THUMB2-NEXT:    it ne
; THUMB2-NEXT:    movne r0, #41
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_C_Cplus1:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    lsls r0, r0, #31
; THUMB-NEXT:    bne .LBB18_2
; THUMB-NEXT:  @ %bb.1:
; THUMB-NEXT:    movs r0, #42
; THUMB-NEXT:    bx lr
; THUMB-NEXT:  .LBB18_2:
; THUMB-NEXT:    movs r0, #41
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 41, i32 42
  ret i32 %sel
}

define i32 @select_C_Cplus1_zeroext(i1 zeroext %cond) {
; ARM-LABEL: select_C_Cplus1_zeroext:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #42
; ARM-NEXT:    cmp r0, #0
; ARM-NEXT:    movne r1, #41
; ARM-NEXT:    mov r0, r1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_C_Cplus1_zeroext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    movs r1, #42
; THUMB2-NEXT:    cmp r0, #0
; THUMB2-NEXT:    it ne
; THUMB2-NEXT:    movne r1, #41
; THUMB2-NEXT:    mov r0, r1
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_C_Cplus1_zeroext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    cmp r0, #0
; THUMB-NEXT:    bne .LBB19_2
; THUMB-NEXT:  @ %bb.1:
; THUMB-NEXT:    movs r0, #42
; THUMB-NEXT:    bx lr
; THUMB-NEXT:  .LBB19_2:
; THUMB-NEXT:    movs r0, #41
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 41, i32 42
  ret i32 %sel
}

define i32 @select_C_Cplus1_signext(i1 signext %cond) {
; ARM-LABEL: select_C_Cplus1_signext:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #42
; ARM-NEXT:    tst r0, #1
; ARM-NEXT:    movne r1, #41
; ARM-NEXT:    mov r0, r1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_C_Cplus1_signext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    lsls r0, r0, #31
; THUMB2-NEXT:    mov.w r0, #42
; THUMB2-NEXT:    it ne
; THUMB2-NEXT:    movne r0, #41
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_C_Cplus1_signext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    lsls r0, r0, #31
; THUMB-NEXT:    bne .LBB20_2
; THUMB-NEXT:  @ %bb.1:
; THUMB-NEXT:    movs r0, #42
; THUMB-NEXT:    bx lr
; THUMB-NEXT:  .LBB20_2:
; THUMB-NEXT:    movs r0, #41
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 41, i32 42
  ret i32 %sel
}

; In general, select of 2 constants could be:
; select Cond, C1, C2 --> add (mul (zext Cond), C1-C2), C2 --> add (and (sext Cond), C1-C2), C2

define i32 @select_C1_C2(i1 %cond) {
; ARM-LABEL: select_C1_C2:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #165
; ARM-NEXT:    tst r0, #1
; ARM-NEXT:    orr r1, r1, #256
; ARM-NEXT:    moveq r1, #42
; ARM-NEXT:    mov r0, r1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_C1_C2:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    lsls r0, r0, #31
; THUMB2-NEXT:    mov.w r0, #42
; THUMB2-NEXT:    it ne
; THUMB2-NEXT:    movwne r0, #421
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_C1_C2:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    lsls r0, r0, #31
; THUMB-NEXT:    bne .LBB21_2
; THUMB-NEXT:  @ %bb.1:
; THUMB-NEXT:    movs r0, #42
; THUMB-NEXT:    bx lr
; THUMB-NEXT:  .LBB21_2:
; THUMB-NEXT:    movs r0, #255
; THUMB-NEXT:    adds r0, #166
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 421, i32 42
  ret i32 %sel
}

define i32 @select_C1_C2_zeroext(i1 zeroext %cond) {
; ARM-LABEL: select_C1_C2_zeroext:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #165
; ARM-NEXT:    cmp r0, #0
; ARM-NEXT:    orr r1, r1, #256
; ARM-NEXT:    moveq r1, #42
; ARM-NEXT:    mov r0, r1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_C1_C2_zeroext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    movs r1, #42
; THUMB2-NEXT:    cmp r0, #0
; THUMB2-NEXT:    it ne
; THUMB2-NEXT:    movwne r1, #421
; THUMB2-NEXT:    mov r0, r1
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_C1_C2_zeroext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    cmp r0, #0
; THUMB-NEXT:    bne .LBB22_2
; THUMB-NEXT:  @ %bb.1:
; THUMB-NEXT:    movs r0, #42
; THUMB-NEXT:    bx lr
; THUMB-NEXT:  .LBB22_2:
; THUMB-NEXT:    movs r0, #255
; THUMB-NEXT:    adds r0, #166
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 421, i32 42
  ret i32 %sel
}

define i32 @select_C1_C2_signext(i1 signext %cond) {
; ARM-LABEL: select_C1_C2_signext:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #165
; ARM-NEXT:    tst r0, #1
; ARM-NEXT:    orr r1, r1, #256
; ARM-NEXT:    moveq r1, #42
; ARM-NEXT:    mov r0, r1
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: select_C1_C2_signext:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    lsls r0, r0, #31
; THUMB2-NEXT:    mov.w r0, #42
; THUMB2-NEXT:    it ne
; THUMB2-NEXT:    movwne r0, #421
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: select_C1_C2_signext:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    lsls r0, r0, #31
; THUMB-NEXT:    bne .LBB23_2
; THUMB-NEXT:  @ %bb.1:
; THUMB-NEXT:    movs r0, #42
; THUMB-NEXT:    bx lr
; THUMB-NEXT:  .LBB23_2:
; THUMB-NEXT:    movs r0, #255
; THUMB-NEXT:    adds r0, #166
; THUMB-NEXT:    bx lr
  %sel = select i1 %cond, i32 421, i32 42
  ret i32 %sel
}

; 4295032833 = 0x100010001.
; This becomes an opaque constant via ConstantHoisting, so we don't fold it into the select.

define i64 @opaque_constant1(i1 %cond, i64 %x) {
; ARM-LABEL: opaque_constant1:
; ARM:       @ %bb.0:
; ARM-NEXT:    .save {r4, lr}
; ARM-NEXT:    push {r4, lr}
; ARM-NEXT:    mov lr, #1
; ARM-NEXT:    ands r12, r0, #1
; ARM-NEXT:    mov r0, #23
; ARM-NEXT:    orr lr, lr, #65536
; ARM-NEXT:    mvnne r0, #3
; ARM-NEXT:    and r4, r0, lr
; ARM-NEXT:    movne r12, #1
; ARM-NEXT:    subs r0, r4, #1
; ARM-NEXT:    eor r2, r2, lr
; ARM-NEXT:    eor r3, r3, #1
; ARM-NEXT:    sbc r1, r12, #0
; ARM-NEXT:    orrs r2, r2, r3
; ARM-NEXT:    movne r0, r4
; ARM-NEXT:    movne r1, r12
; ARM-NEXT:    pop {r4, lr}
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: opaque_constant1:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    .save {r7, lr}
; THUMB2-NEXT:    push {r7, lr}
; THUMB2-NEXT:    ands r12, r0, #1
; THUMB2-NEXT:    mov.w lr, #1
; THUMB2-NEXT:    itt ne
; THUMB2-NEXT:    movne.w lr, #65536
; THUMB2-NEXT:    movne.w r12, #1
; THUMB2-NEXT:    subs.w r0, lr, #1
; THUMB2-NEXT:    sbc r1, r12, #0
; THUMB2-NEXT:    eor r3, r3, #1
; THUMB2-NEXT:    eor r2, r2, #65537
; THUMB2-NEXT:    orrs r2, r3
; THUMB2-NEXT:    itt ne
; THUMB2-NEXT:    movne r0, lr
; THUMB2-NEXT:    movne r1, r12
; THUMB2-NEXT:    pop {r7, pc}
;
; THUMB-LABEL: opaque_constant1:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    .save {r4, r5, r6, r7, lr}
; THUMB-NEXT:    push {r4, r5, r6, r7, lr}
; THUMB-NEXT:    movs r7, #1
; THUMB-NEXT:    ands r0, r7
; THUMB-NEXT:    subs r1, r0, #1
; THUMB-NEXT:    push {r0}
; THUMB-NEXT:    pop {r4}
; THUMB-NEXT:    sbcs r4, r1
; THUMB-NEXT:    cmp r0, #0
; THUMB-NEXT:    bne .LBB24_2
; THUMB-NEXT:  @ %bb.1:
; THUMB-NEXT:    movs r5, #23
; THUMB-NEXT:    b .LBB24_3
; THUMB-NEXT:  .LBB24_2:
; THUMB-NEXT:    movs r0, #3
; THUMB-NEXT:    mvns r5, r0
; THUMB-NEXT:  .LBB24_3:
; THUMB-NEXT:    ldr r0, .LCPI24_0
; THUMB-NEXT:    ands r5, r0
; THUMB-NEXT:    movs r6, #0
; THUMB-NEXT:    subs r0, r5, #1
; THUMB-NEXT:    push {r4}
; THUMB-NEXT:    pop {r1}
; THUMB-NEXT:    sbcs r1, r6
; THUMB-NEXT:    eors r3, r7
; THUMB-NEXT:    ldr r6, .LCPI24_0
; THUMB-NEXT:    eors r2, r6
; THUMB-NEXT:    orrs r2, r3
; THUMB-NEXT:    beq .LBB24_5
; THUMB-NEXT:  @ %bb.4:
; THUMB-NEXT:    movs r1, r4
; THUMB-NEXT:  .LBB24_5:
; THUMB-NEXT:    cmp r2, #0
; THUMB-NEXT:    beq .LBB24_7
; THUMB-NEXT:  @ %bb.6:
; THUMB-NEXT:    movs r0, r5
; THUMB-NEXT:  .LBB24_7:
; THUMB-NEXT:    pop {r4, r5, r6, r7}
; THUMB-NEXT:    pop {r2}
; THUMB-NEXT:    bx r2
; THUMB-NEXT:    .p2align 2
; THUMB-NEXT:  @ %bb.8:
; THUMB-NEXT:  .LCPI24_0:
; THUMB-NEXT:    .long 65537 @ 0x10001
  %sel = select i1 %cond, i64 -4, i64 23
  %bo = and i64 %sel, 4295032833  ; 0x100010001
  %cmp = icmp eq i64 %x, 4295032833
  %sext = sext i1 %cmp to i64
  %add = add i64 %bo, %sext
  ret i64 %add
}

; 65537 == 0x10001.
; This becomes an opaque constant via ConstantHoisting, so we don't fold it into the select.

define i64 @opaque_constant2(i1 %cond, i64 %x) {
; ARM-LABEL: opaque_constant2:
; ARM:       @ %bb.0:
; ARM-NEXT:    mov r1, #1
; ARM-NEXT:    tst r0, #1
; ARM-NEXT:    orr r1, r1, #65536
; ARM-NEXT:    moveq r1, #23
; ARM-NEXT:    bic r0, r1, #22
; ARM-NEXT:    mov r1, #0
; ARM-NEXT:    mov pc, lr
;
; THUMB2-LABEL: opaque_constant2:
; THUMB2:       @ %bb.0:
; THUMB2-NEXT:    lsls r0, r0, #31
; THUMB2-NEXT:    mov.w r1, #0
; THUMB2-NEXT:    mov.w r0, #1
; THUMB2-NEXT:    it ne
; THUMB2-NEXT:    movne.w r0, #65537
; THUMB2-NEXT:    bx lr
;
; THUMB-LABEL: opaque_constant2:
; THUMB:       @ %bb.0:
; THUMB-NEXT:    lsls r0, r0, #31
; THUMB-NEXT:    bne .LBB25_2
; THUMB-NEXT:  @ %bb.1:
; THUMB-NEXT:    movs r0, #23
; THUMB-NEXT:    b .LBB25_3
; THUMB-NEXT:  .LBB25_2:
; THUMB-NEXT:    ldr r0, .LCPI25_0
; THUMB-NEXT:  .LBB25_3:
; THUMB-NEXT:    movs r1, #22
; THUMB-NEXT:    bics r0, r1
; THUMB-NEXT:    movs r1, #0
; THUMB-NEXT:    bx lr
; THUMB-NEXT:    .p2align 2
; THUMB-NEXT:  @ %bb.4:
; THUMB-NEXT:  .LCPI25_0:
; THUMB-NEXT:    .long 65537 @ 0x10001
  %sel = select i1 %cond, i64 65537, i64 23
  %bo = and i64 %sel, 65537
  ret i64 %bo
}

