; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=riscv64 -mattr=+c -verify-machineinstrs < %s \
; RUN:   | FileCheck -check-prefix=NOCMOV %s
; RUN: llc -mtriple=riscv64 -mattr=+conditional-cmv-fusion,+c -verify-machineinstrs < %s \
; RUN:   | FileCheck -check-prefixes=CMOV,CMOV-NOZICOND %s
; RUN: llc -mtriple=riscv64 -mattr=+conditional-cmv-fusion,+c,+zicond -verify-machineinstrs < %s \
; RUN:   | FileCheck -check-prefixes=CMOV,CMOV-ZICOND %s
; RUN: llc -mtriple=riscv64 -mattr=+short-forward-branch-opt -verify-machineinstrs < %s \
; RUN:   | FileCheck -check-prefixes=SHORT_FORWARD,SFB-NOZICOND %s
; RUN: llc -mtriple=riscv64 -mattr=+short-forward-branch-opt,+c -verify-machineinstrs < %s \
; RUN:   | FileCheck -check-prefixes=SHORT_FORWARD,SFB-NOZICOND %s
; RUN: llc -mtriple=riscv64 -mattr=+short-forward-branch-opt,+zicond -verify-machineinstrs < %s \
; RUN:   | FileCheck -check-prefixes=SHORT_FORWARD,SFB-ZICOND %s

; The conditional move optimization in sifive-p450 requires that only a
; single c.mv instruction appears in the branch shadow.

; The sifive-7-series can predicate an xor.

define signext i32 @test1(i32 signext %x, i32 signext %y, i32 signext %z) {
; NOCMOV-LABEL: test1:
; NOCMOV:       # %bb.0:
; NOCMOV-NEXT:    snez a2, a2
; NOCMOV-NEXT:    addi a2, a2, -1
; NOCMOV-NEXT:    and a1, a1, a2
; NOCMOV-NEXT:    xor a0, a0, a1
; NOCMOV-NEXT:    ret
;
; CMOV-LABEL: test1:
; CMOV:       # %bb.0:
; CMOV-NEXT:    xor a1, a1, a0
; CMOV-NEXT:    bnez a2, .LBB0_2
; CMOV-NEXT:  # %bb.1:
; CMOV-NEXT:    mv a0, a1
; CMOV-NEXT:  .LBB0_2:
; CMOV-NEXT:    ret
;
; SHORT_FORWARD-LABEL: test1:
; SHORT_FORWARD:       # %bb.0:
; SHORT_FORWARD-NEXT:    bnez a2, .LBB0_2
; SHORT_FORWARD-NEXT:  # %bb.1:
; SHORT_FORWARD-NEXT:    xor a0, a0, a1
; SHORT_FORWARD-NEXT:  .LBB0_2:
; SHORT_FORWARD-NEXT:    ret
  %c = icmp eq i32 %z, 0
  %a = xor i32 %x, %y
  %b = select i1 %c, i32 %a, i32 %x
  ret i32 %b
}

define signext i32 @test2(i32 signext %x, i32 signext %y, i32 signext %z) {
; NOCMOV-LABEL: test2:
; NOCMOV:       # %bb.0:
; NOCMOV-NEXT:    seqz a2, a2
; NOCMOV-NEXT:    addi a2, a2, -1
; NOCMOV-NEXT:    and a1, a1, a2
; NOCMOV-NEXT:    xor a0, a0, a1
; NOCMOV-NEXT:    ret
;
; CMOV-LABEL: test2:
; CMOV:       # %bb.0:
; CMOV-NEXT:    xor a1, a1, a0
; CMOV-NEXT:    beqz a2, .LBB1_2
; CMOV-NEXT:  # %bb.1:
; CMOV-NEXT:    mv a0, a1
; CMOV-NEXT:  .LBB1_2:
; CMOV-NEXT:    ret
;
; SHORT_FORWARD-LABEL: test2:
; SHORT_FORWARD:       # %bb.0:
; SHORT_FORWARD-NEXT:    beqz a2, .LBB1_2
; SHORT_FORWARD-NEXT:  # %bb.1:
; SHORT_FORWARD-NEXT:    xor a0, a0, a1
; SHORT_FORWARD-NEXT:  .LBB1_2:
; SHORT_FORWARD-NEXT:    ret
  %c = icmp eq i32 %z, 0
  %a = xor i32 %x, %y
  %b = select i1 %c, i32 %x, i32 %a
  ret i32 %b
}

; Make sure we don't share the same basic block for two selects with the same
; condition.
define signext i32 @test3(i32 signext %v, i32 signext %w, i32 signext %x, i32 signext %y, i32 signext %z) {
; NOCMOV-LABEL: test3:
; NOCMOV:       # %bb.0:
; NOCMOV-NEXT:    seqz a4, a4
; NOCMOV-NEXT:    addi a4, a4, -1
; NOCMOV-NEXT:    and a1, a1, a4
; NOCMOV-NEXT:    and a3, a3, a4
; NOCMOV-NEXT:    xor a0, a0, a1
; NOCMOV-NEXT:    xor a2, a2, a3
; NOCMOV-NEXT:    addw a0, a0, a2
; NOCMOV-NEXT:    ret
;
; CMOV-LABEL: test3:
; CMOV:       # %bb.0:
; CMOV-NEXT:    xor a1, a1, a0
; CMOV-NEXT:    xor a3, a3, a2
; CMOV-NEXT:    bnez a4, .LBB2_2
; CMOV-NEXT:  # %bb.1:
; CMOV-NEXT:    mv a1, a0
; CMOV-NEXT:  .LBB2_2:
; CMOV-NEXT:    bnez a4, .LBB2_4
; CMOV-NEXT:  # %bb.3:
; CMOV-NEXT:    mv a3, a2
; CMOV-NEXT:  .LBB2_4:
; CMOV-NEXT:    addw a0, a1, a3
; CMOV-NEXT:    ret
;
; SHORT_FORWARD-LABEL: test3:
; SHORT_FORWARD:       # %bb.0:
; SHORT_FORWARD-NEXT:    beqz a4, .LBB2_2
; SHORT_FORWARD-NEXT:  # %bb.1:
; SHORT_FORWARD-NEXT:    xor a0, a0, a1
; SHORT_FORWARD-NEXT:  .LBB2_2:
; SHORT_FORWARD-NEXT:    beqz a4, .LBB2_4
; SHORT_FORWARD-NEXT:  # %bb.3:
; SHORT_FORWARD-NEXT:    xor a2, a2, a3
; SHORT_FORWARD-NEXT:  .LBB2_4:
; SHORT_FORWARD-NEXT:    addw a0, a0, a2
; SHORT_FORWARD-NEXT:    ret
  %c = icmp eq i32 %z, 0
  %a = xor i32 %v, %w
  %b = select i1 %c, i32 %v, i32 %a
  %d = xor i32 %x, %y
  %e = select i1 %c, i32 %x, i32 %d
  %f = add i32 %b, %e
  ret i32 %f
}

define signext i32 @test4(i32 signext %x, i32 signext %y, i32 signext %z) {
; NOCMOV-LABEL: test4:
; NOCMOV:       # %bb.0:
; NOCMOV-NEXT:    snez a0, a2
; NOCMOV-NEXT:    addi a0, a0, -1
; NOCMOV-NEXT:    andi a0, a0, 3
; NOCMOV-NEXT:    ret
;
; CMOV-NOZICOND-LABEL: test4:
; CMOV-NOZICOND:       # %bb.0:
; CMOV-NOZICOND-NEXT:    li a1, 0
; CMOV-NOZICOND-NEXT:    li a0, 3
; CMOV-NOZICOND-NEXT:    beqz a2, .LBB3_2
; CMOV-NOZICOND-NEXT:  # %bb.1:
; CMOV-NOZICOND-NEXT:    mv a0, a1
; CMOV-NOZICOND-NEXT:  .LBB3_2:
; CMOV-NOZICOND-NEXT:    ret
;
; CMOV-ZICOND-LABEL: test4:
; CMOV-ZICOND:       # %bb.0:
; CMOV-ZICOND-NEXT:    li a0, 3
; CMOV-ZICOND-NEXT:    czero.nez a0, a0, a2
; CMOV-ZICOND-NEXT:    ret
;
; SFB-NOZICOND-LABEL: test4:
; SFB-NOZICOND:       # %bb.0:
; SFB-NOZICOND-NEXT:    li a0, 3
; SFB-NOZICOND-NEXT:    beqz a2, .LBB3_2
; SFB-NOZICOND-NEXT:  # %bb.1:
; SFB-NOZICOND-NEXT:    li a0, 0
; SFB-NOZICOND-NEXT:  .LBB3_2:
; SFB-NOZICOND-NEXT:    ret
;
; SFB-ZICOND-LABEL: test4:
; SFB-ZICOND:       # %bb.0:
; SFB-ZICOND-NEXT:    li a0, 3
; SFB-ZICOND-NEXT:    czero.nez a0, a0, a2
; SFB-ZICOND-NEXT:    ret
  %c = icmp eq i32 %z, 0
  %a = select i1 %c, i32 3, i32 0
  ret i32 %a
}

define i16 @select_xor_1(i16 %A, i8 %cond) {
; NOCMOV-LABEL: select_xor_1:
; NOCMOV:       # %bb.0: # %entry
; NOCMOV-NEXT:    slli a1, a1, 63
; NOCMOV-NEXT:    srai a1, a1, 63
; NOCMOV-NEXT:    andi a1, a1, 43
; NOCMOV-NEXT:    xor a0, a0, a1
; NOCMOV-NEXT:    ret
;
; CMOV-LABEL: select_xor_1:
; CMOV:       # %bb.0: # %entry
; CMOV-NEXT:    andi a1, a1, 1
; CMOV-NEXT:    xori a2, a0, 43
; CMOV-NEXT:    beqz a1, .LBB4_2
; CMOV-NEXT:  # %bb.1: # %entry
; CMOV-NEXT:    mv a0, a2
; CMOV-NEXT:  .LBB4_2: # %entry
; CMOV-NEXT:    ret
;
; SHORT_FORWARD-LABEL: select_xor_1:
; SHORT_FORWARD:       # %bb.0: # %entry
; SHORT_FORWARD-NEXT:    andi a1, a1, 1
; SHORT_FORWARD-NEXT:    beqz a1, .LBB4_2
; SHORT_FORWARD-NEXT:  # %bb.1: # %entry
; SHORT_FORWARD-NEXT:    xori a0, a0, 43
; SHORT_FORWARD-NEXT:  .LBB4_2: # %entry
; SHORT_FORWARD-NEXT:    ret
entry:
 %and = and i8 %cond, 1
 %cmp10 = icmp eq i8 %and, 0
 %0 = xor i16 %A, 43
 %1 = select i1 %cmp10, i16 %A, i16 %0
 ret i16 %1
}

; Equivalent to above, but with icmp ne (and %cond, 1), 1 instead of
; icmp eq (and %cond, 1), 0
define i16 @select_xor_1b(i16 %A, i8 %cond) {
; NOCMOV-LABEL: select_xor_1b:
; NOCMOV:       # %bb.0: # %entry
; NOCMOV-NEXT:    slli a1, a1, 63
; NOCMOV-NEXT:    srai a1, a1, 63
; NOCMOV-NEXT:    andi a1, a1, 43
; NOCMOV-NEXT:    xor a0, a0, a1
; NOCMOV-NEXT:    ret
;
; CMOV-LABEL: select_xor_1b:
; CMOV:       # %bb.0: # %entry
; CMOV-NEXT:    andi a1, a1, 1
; CMOV-NEXT:    xori a2, a0, 43
; CMOV-NEXT:    beqz a1, .LBB5_2
; CMOV-NEXT:  # %bb.1: # %entry
; CMOV-NEXT:    mv a0, a2
; CMOV-NEXT:  .LBB5_2: # %entry
; CMOV-NEXT:    ret
;
; SHORT_FORWARD-LABEL: select_xor_1b:
; SHORT_FORWARD:       # %bb.0: # %entry
; SHORT_FORWARD-NEXT:    andi a1, a1, 1
; SHORT_FORWARD-NEXT:    beqz a1, .LBB5_2
; SHORT_FORWARD-NEXT:  # %bb.1: # %entry
; SHORT_FORWARD-NEXT:    xori a0, a0, 43
; SHORT_FORWARD-NEXT:  .LBB5_2: # %entry
; SHORT_FORWARD-NEXT:    ret
entry:
 %and = and i8 %cond, 1
 %cmp10 = icmp ne i8 %and, 1
 %0 = xor i16 %A, 43
 %1 = select i1 %cmp10, i16 %A, i16 %0
 ret i16 %1
}

define i32 @select_xor_2(i32 %A, i32 %B, i8 %cond) {
; NOCMOV-LABEL: select_xor_2:
; NOCMOV:       # %bb.0: # %entry
; NOCMOV-NEXT:    slli a2, a2, 63
; NOCMOV-NEXT:    srai a2, a2, 63
; NOCMOV-NEXT:    and a1, a1, a2
; NOCMOV-NEXT:    xor a0, a0, a1
; NOCMOV-NEXT:    ret
;
; CMOV-LABEL: select_xor_2:
; CMOV:       # %bb.0: # %entry
; CMOV-NEXT:    andi a2, a2, 1
; CMOV-NEXT:    xor a1, a1, a0
; CMOV-NEXT:    beqz a2, .LBB6_2
; CMOV-NEXT:  # %bb.1: # %entry
; CMOV-NEXT:    mv a0, a1
; CMOV-NEXT:  .LBB6_2: # %entry
; CMOV-NEXT:    ret
;
; SFB-ZICOND-LABEL: select_xor_2:
; SFB-ZICOND:       # %bb.0: # %entry
; SFB-ZICOND-NEXT:    andi a2, a2, 1
; SFB-ZICOND-NEXT:    beqz a2, .LBB6_2
; SFB-ZICOND-NEXT:  # %bb.1: # %entry
; SFB-ZICOND-NEXT:    xor a0, a1, a0
; SFB-ZICOND-NEXT:  .LBB6_2: # %entry
; SFB-ZICOND-NEXT:    ret
entry:
 %and = and i8 %cond, 1
 %cmp10 = icmp eq i8 %and, 0
 %0 = xor i32 %B, %A
 %1 = select i1 %cmp10, i32 %A, i32 %0
 ret i32 %1
}

; Equivalent to above, but with icmp ne (and %cond, 1), 1 instead of
; icmp eq (and %cond, 1), 0
define i32 @select_xor_2b(i32 %A, i32 %B, i8 %cond) {
; NOCMOV-LABEL: select_xor_2b:
; NOCMOV:       # %bb.0: # %entry
; NOCMOV-NEXT:    slli a2, a2, 63
; NOCMOV-NEXT:    srai a2, a2, 63
; NOCMOV-NEXT:    and a1, a1, a2
; NOCMOV-NEXT:    xor a0, a0, a1
; NOCMOV-NEXT:    ret
;
; CMOV-LABEL: select_xor_2b:
; CMOV:       # %bb.0: # %entry
; CMOV-NEXT:    andi a2, a2, 1
; CMOV-NEXT:    xor a1, a1, a0
; CMOV-NEXT:    beqz a2, .LBB7_2
; CMOV-NEXT:  # %bb.1: # %entry
; CMOV-NEXT:    mv a0, a1
; CMOV-NEXT:  .LBB7_2: # %entry
; CMOV-NEXT:    ret
;
; SFB-ZICOND-LABEL: select_xor_2b:
; SFB-ZICOND:       # %bb.0: # %entry
; SFB-ZICOND-NEXT:    andi a2, a2, 1
; SFB-ZICOND-NEXT:    beqz a2, .LBB7_2
; SFB-ZICOND-NEXT:  # %bb.1: # %entry
; SFB-ZICOND-NEXT:    xor a0, a1, a0
; SFB-ZICOND-NEXT:  .LBB7_2: # %entry
; SFB-ZICOND-NEXT:    ret
entry:
 %and = and i8 %cond, 1
 %cmp10 = icmp ne i8 %and, 1
 %0 = xor i32 %B, %A
 %1 = select i1 %cmp10, i32 %A, i32 %0
 ret i32 %1
}

define i32 @select_or(i32 %A, i32 %B, i8 %cond) {
; NOCMOV-LABEL: select_or:
; NOCMOV:       # %bb.0: # %entry
; NOCMOV-NEXT:    slli a2, a2, 63
; NOCMOV-NEXT:    srai a2, a2, 63
; NOCMOV-NEXT:    and a1, a1, a2
; NOCMOV-NEXT:    or a0, a0, a1
; NOCMOV-NEXT:    ret
;
; CMOV-LABEL: select_or:
; CMOV:       # %bb.0: # %entry
; CMOV-NEXT:    andi a2, a2, 1
; CMOV-NEXT:    or a1, a1, a0
; CMOV-NEXT:    beqz a2, .LBB8_2
; CMOV-NEXT:  # %bb.1: # %entry
; CMOV-NEXT:    mv a0, a1
; CMOV-NEXT:  .LBB8_2: # %entry
; CMOV-NEXT:    ret
;
; SFB-ZICOND-LABEL: select_or:
; SFB-ZICOND:       # %bb.0: # %entry
; SFB-ZICOND-NEXT:    andi a2, a2, 1
; SFB-ZICOND-NEXT:    beqz a2, .LBB8_2
; SFB-ZICOND-NEXT:  # %bb.1: # %entry
; SFB-ZICOND-NEXT:    or a0, a1, a0
; SFB-ZICOND-NEXT:  .LBB8_2: # %entry
; SFB-ZICOND-NEXT:    ret
entry:
 %and = and i8 %cond, 1
 %cmp10 = icmp eq i8 %and, 0
 %0 = or i32 %B, %A
 %1 = select i1 %cmp10, i32 %A, i32 %0
 ret i32 %1
}

; Equivalent to above, but with icmp ne (and %cond, 1), 1 instead of
; icmp eq (and %cond, 1), 0
define i32 @select_or_b(i32 %A, i32 %B, i8 %cond) {
; NOCMOV-LABEL: select_or_b:
; NOCMOV:       # %bb.0: # %entry
; NOCMOV-NEXT:    slli a2, a2, 63
; NOCMOV-NEXT:    srai a2, a2, 63
; NOCMOV-NEXT:    and a1, a1, a2
; NOCMOV-NEXT:    or a0, a0, a1
; NOCMOV-NEXT:    ret
;
; CMOV-LABEL: select_or_b:
; CMOV:       # %bb.0: # %entry
; CMOV-NEXT:    andi a2, a2, 1
; CMOV-NEXT:    or a1, a1, a0
; CMOV-NEXT:    beqz a2, .LBB9_2
; CMOV-NEXT:  # %bb.1: # %entry
; CMOV-NEXT:    mv a0, a1
; CMOV-NEXT:  .LBB9_2: # %entry
; CMOV-NEXT:    ret
;
; SFB-ZICOND-LABEL: select_or_b:
; SFB-ZICOND:       # %bb.0: # %entry
; SFB-ZICOND-NEXT:    andi a2, a2, 1
; SFB-ZICOND-NEXT:    beqz a2, .LBB9_2
; SFB-ZICOND-NEXT:  # %bb.1: # %entry
; SFB-ZICOND-NEXT:    or a0, a1, a0
; SFB-ZICOND-NEXT:  .LBB9_2: # %entry
; SFB-ZICOND-NEXT:    ret
entry:
 %and = and i8 %cond, 1
 %cmp10 = icmp ne i8 %and, 1
 %0 = or i32 %B, %A
 %1 = select i1 %cmp10, i32 %A, i32 %0
 ret i32 %1
}

define i32 @select_or_1(i32 %A, i32 %B, i32 %cond) {
; NOCMOV-LABEL: select_or_1:
; NOCMOV:       # %bb.0: # %entry
; NOCMOV-NEXT:    slli a2, a2, 63
; NOCMOV-NEXT:    srai a2, a2, 63
; NOCMOV-NEXT:    and a1, a1, a2
; NOCMOV-NEXT:    or a0, a0, a1
; NOCMOV-NEXT:    ret
;
; CMOV-LABEL: select_or_1:
; CMOV:       # %bb.0: # %entry
; CMOV-NEXT:    andi a2, a2, 1
; CMOV-NEXT:    or a1, a1, a0
; CMOV-NEXT:    beqz a2, .LBB10_2
; CMOV-NEXT:  # %bb.1: # %entry
; CMOV-NEXT:    mv a0, a1
; CMOV-NEXT:  .LBB10_2: # %entry
; CMOV-NEXT:    ret
;
; SFB-ZICOND-LABEL: select_or_1:
; SFB-ZICOND:       # %bb.0: # %entry
; SFB-ZICOND-NEXT:    andi a2, a2, 1
; SFB-ZICOND-NEXT:    beqz a2, .LBB10_2
; SFB-ZICOND-NEXT:  # %bb.1: # %entry
; SFB-ZICOND-NEXT:    or a0, a1, a0
; SFB-ZICOND-NEXT:  .LBB10_2: # %entry
; SFB-ZICOND-NEXT:    ret
entry:
 %and = and i32 %cond, 1
 %cmp10 = icmp eq i32 %and, 0
 %0 = or i32 %B, %A
 %1 = select i1 %cmp10, i32 %A, i32 %0
 ret i32 %1
}

; Equivalent to above, but with icmp ne (and %cond, 1), 1 instead of
; icmp eq (and %cond, 1), 0
define i32 @select_or_1b(i32 %A, i32 %B, i32 %cond) {
; NOCMOV-LABEL: select_or_1b:
; NOCMOV:       # %bb.0: # %entry
; NOCMOV-NEXT:    slli a2, a2, 63
; NOCMOV-NEXT:    srai a2, a2, 63
; NOCMOV-NEXT:    and a1, a1, a2
; NOCMOV-NEXT:    or a0, a0, a1
; NOCMOV-NEXT:    ret
;
; CMOV-LABEL: select_or_1b:
; CMOV:       # %bb.0: # %entry
; CMOV-NEXT:    andi a2, a2, 1
; CMOV-NEXT:    or a1, a1, a0
; CMOV-NEXT:    beqz a2, .LBB11_2
; CMOV-NEXT:  # %bb.1: # %entry
; CMOV-NEXT:    mv a0, a1
; CMOV-NEXT:  .LBB11_2: # %entry
; CMOV-NEXT:    ret
;
; SFB-ZICOND-LABEL: select_or_1b:
; SFB-ZICOND:       # %bb.0: # %entry
; SFB-ZICOND-NEXT:    andi a2, a2, 1
; SFB-ZICOND-NEXT:    beqz a2, .LBB11_2
; SFB-ZICOND-NEXT:  # %bb.1: # %entry
; SFB-ZICOND-NEXT:    or a0, a1, a0
; SFB-ZICOND-NEXT:  .LBB11_2: # %entry
; SFB-ZICOND-NEXT:    ret
entry:
 %and = and i32 %cond, 1
 %cmp10 = icmp ne i32 %and, 1
 %0 = or i32 %B, %A
 %1 = select i1 %cmp10, i32 %A, i32 %0
 ret i32 %1
}
