1f4d2f7a3SLiao Chunyu; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2f4d2f7a3SLiao Chunyu; RUN: llc -O0 -mtriple=riscv32 -mattr=+xcvbi -verify-machineinstrs < %s \ 3f4d2f7a3SLiao Chunyu; RUN: | FileCheck %s --check-prefixes=CHECK_NOPT 4f4d2f7a3SLiao Chunyu; RUN: llc -O3 -mtriple=riscv32 -mattr=+xcvbi -verify-machineinstrs < %s \ 5f4d2f7a3SLiao Chunyu; RUN: | FileCheck %s --check-prefixes=CHECK_OPT 6f4d2f7a3SLiao Chunyu 7f4d2f7a3SLiao Chunyudefine i32 @beqimm(i32 %a) { 8f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: beqimm: 9f4d2f7a3SLiao Chunyu; CHECK_NOPT: # %bb.0: 10f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: cv.beqimm a0, 5, .LBB0_2 11f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: j .LBB0_1 12f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .LBB0_1: # %f 13f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: li a0, 0 14f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: ret 15f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .LBB0_2: # %t 16f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: li a0, 1 17f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: ret 18f4d2f7a3SLiao Chunyu; 19f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: beqimm: 20f4d2f7a3SLiao Chunyu; CHECK_OPT: # %bb.0: 21f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: cv.bneimm a0, 5, .LBB0_2 22f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: # %bb.1: # %t 23f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: li a0, 1 24f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: ret 25f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: .LBB0_2: # %f 26f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: li a0, 0 27f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: ret 28f4d2f7a3SLiao Chunyu %1 = icmp eq i32 %a, 5 29f4d2f7a3SLiao Chunyu br i1 %1, label %t, label %f 30f4d2f7a3SLiao Chunyuf: 31f4d2f7a3SLiao Chunyu ret i32 0 32f4d2f7a3SLiao Chunyut: 33f4d2f7a3SLiao Chunyu ret i32 1 34f4d2f7a3SLiao Chunyu} 35f4d2f7a3SLiao Chunyu 36f4d2f7a3SLiao Chunyudefine i32 @bneimm(i32 %a) { 37f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: bneimm: 38f4d2f7a3SLiao Chunyu; CHECK_NOPT: # %bb.0: 39f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: cv.bneimm a0, 5, .LBB1_2 40f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: j .LBB1_1 41f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .LBB1_1: # %f 42f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: li a0, 0 43f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: ret 44f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .LBB1_2: # %t 45f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: li a0, 1 46f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: ret 47f4d2f7a3SLiao Chunyu; 48f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: bneimm: 49f4d2f7a3SLiao Chunyu; CHECK_OPT: # %bb.0: 50f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: cv.beqimm a0, 5, .LBB1_2 51f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: # %bb.1: # %t 52f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: li a0, 1 53f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: ret 54f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: .LBB1_2: # %f 55f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: li a0, 0 56f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: ret 57f4d2f7a3SLiao Chunyu %1 = icmp ne i32 %a, 5 58f4d2f7a3SLiao Chunyu br i1 %1, label %t, label %f 59f4d2f7a3SLiao Chunyuf: 60f4d2f7a3SLiao Chunyu ret i32 0 61f4d2f7a3SLiao Chunyut: 62f4d2f7a3SLiao Chunyu ret i32 1 63f4d2f7a3SLiao Chunyu} 64f4d2f7a3SLiao Chunyu 65f4d2f7a3SLiao Chunyudefine i32 @select_beqimm_1(i32 %a, i32 %x, i32 %y) { 66f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: select_beqimm_1: 67f4d2f7a3SLiao Chunyu; CHECK_NOPT: # %bb.0: # %entry 68f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: addi sp, sp, -16 69f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .cfi_def_cfa_offset 16 70f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a1, 8(sp) # 4-byte Folded Spill 71f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a2, 12(sp) # 4-byte Folded Spill 72f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: cv.beqimm a0, -16, .LBB2_2 73f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: # %bb.1: # %entry 74f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: lw a0, 8(sp) # 4-byte Folded Reload 75f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a0, 12(sp) # 4-byte Folded Spill 76f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .LBB2_2: # %entry 77f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: lw a0, 12(sp) # 4-byte Folded Reload 78f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: addi sp, sp, 16 79*97982a8cSdlav-sc; CHECK_NOPT-NEXT: .cfi_def_cfa_offset 0 80f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: ret 81f4d2f7a3SLiao Chunyu; 82f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: select_beqimm_1: 83f4d2f7a3SLiao Chunyu; CHECK_OPT: # %bb.0: # %entry 84f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: cv.beqimm a0, -16, .LBB2_2 85f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: # %bb.1: # %entry 86f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: mv a2, a1 87f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: .LBB2_2: # %entry 88f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: mv a0, a2 89f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: ret 90f4d2f7a3SLiao Chunyuentry: 91f4d2f7a3SLiao Chunyu %cmp.not = icmp eq i32 %a, -16 92f4d2f7a3SLiao Chunyu %cond = select i1 %cmp.not, i32 %y, i32 %x 93f4d2f7a3SLiao Chunyu ret i32 %cond 94f4d2f7a3SLiao Chunyu} 95f4d2f7a3SLiao Chunyu 96f4d2f7a3SLiao Chunyudefine i32 @select_beqimm_2(i32 %a, i32 %x, i32 %y) { 97f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: select_beqimm_2: 98f4d2f7a3SLiao Chunyu; CHECK_NOPT: # %bb.0: # %entry 99f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: addi sp, sp, -16 100f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .cfi_def_cfa_offset 16 101f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a1, 8(sp) # 4-byte Folded Spill 102f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a2, 12(sp) # 4-byte Folded Spill 103f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: cv.beqimm a0, 0, .LBB3_2 104f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: # %bb.1: # %entry 105f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: lw a0, 8(sp) # 4-byte Folded Reload 106f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a0, 12(sp) # 4-byte Folded Spill 107f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .LBB3_2: # %entry 108f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: lw a0, 12(sp) # 4-byte Folded Reload 109f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: addi sp, sp, 16 110*97982a8cSdlav-sc; CHECK_NOPT-NEXT: .cfi_def_cfa_offset 0 111f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: ret 112f4d2f7a3SLiao Chunyu; 113f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: select_beqimm_2: 114f4d2f7a3SLiao Chunyu; CHECK_OPT: # %bb.0: # %entry 115f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: cv.beqimm a0, 0, .LBB3_2 116f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: # %bb.1: # %entry 117f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: mv a2, a1 118f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: .LBB3_2: # %entry 119f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: mv a0, a2 120f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: ret 121f4d2f7a3SLiao Chunyuentry: 122f4d2f7a3SLiao Chunyu %cmp.not = icmp eq i32 %a, 0 123f4d2f7a3SLiao Chunyu %cond = select i1 %cmp.not, i32 %y, i32 %x 124f4d2f7a3SLiao Chunyu ret i32 %cond 125f4d2f7a3SLiao Chunyu} 126f4d2f7a3SLiao Chunyu 127f4d2f7a3SLiao Chunyudefine i32 @select_beqimm_3(i32 %a, i32 %x, i32 %y) { 128f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: select_beqimm_3: 129f4d2f7a3SLiao Chunyu; CHECK_NOPT: # %bb.0: # %entry 130f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: addi sp, sp, -16 131f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .cfi_def_cfa_offset 16 132f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a1, 8(sp) # 4-byte Folded Spill 133f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a2, 12(sp) # 4-byte Folded Spill 134f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: cv.beqimm a0, 15, .LBB4_2 135f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: # %bb.1: # %entry 136f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: lw a0, 8(sp) # 4-byte Folded Reload 137f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a0, 12(sp) # 4-byte Folded Spill 138f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .LBB4_2: # %entry 139f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: lw a0, 12(sp) # 4-byte Folded Reload 140f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: addi sp, sp, 16 141*97982a8cSdlav-sc; CHECK_NOPT-NEXT: .cfi_def_cfa_offset 0 142f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: ret 143f4d2f7a3SLiao Chunyu; 144f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: select_beqimm_3: 145f4d2f7a3SLiao Chunyu; CHECK_OPT: # %bb.0: # %entry 146f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: cv.beqimm a0, 15, .LBB4_2 147f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: # %bb.1: # %entry 148f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: mv a2, a1 149f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: .LBB4_2: # %entry 150f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: mv a0, a2 151f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: ret 152f4d2f7a3SLiao Chunyuentry: 153f4d2f7a3SLiao Chunyu %cmp.not = icmp eq i32 %a, 15 154f4d2f7a3SLiao Chunyu %cond = select i1 %cmp.not, i32 %y, i32 %x 155f4d2f7a3SLiao Chunyu ret i32 %cond 156f4d2f7a3SLiao Chunyu} 157f4d2f7a3SLiao Chunyu 158f4d2f7a3SLiao Chunyudefine i32 @select_no_beqimm_1(i32 %a, i32 %x, i32 %y) { 159f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: select_no_beqimm_1: 160f4d2f7a3SLiao Chunyu; CHECK_NOPT: # %bb.0: # %entry 161f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: addi sp, sp, -16 162f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .cfi_def_cfa_offset 16 163f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a1, 8(sp) # 4-byte Folded Spill 164f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: li a1, -17 165f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a2, 12(sp) # 4-byte Folded Spill 166f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: beq a0, a1, .LBB5_2 167f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: # %bb.1: # %entry 168f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: lw a0, 8(sp) # 4-byte Folded Reload 169f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a0, 12(sp) # 4-byte Folded Spill 170f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .LBB5_2: # %entry 171f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: lw a0, 12(sp) # 4-byte Folded Reload 172f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: addi sp, sp, 16 173*97982a8cSdlav-sc; CHECK_NOPT-NEXT: .cfi_def_cfa_offset 0 174f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: ret 175f4d2f7a3SLiao Chunyu; 176f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: select_no_beqimm_1: 177f4d2f7a3SLiao Chunyu; CHECK_OPT: # %bb.0: # %entry 178f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: li a3, -17 179f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: beq a0, a3, .LBB5_2 180f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: # %bb.1: # %entry 181f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: mv a2, a1 182f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: .LBB5_2: # %entry 183f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: mv a0, a2 184f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: ret 185f4d2f7a3SLiao Chunyuentry: 186f4d2f7a3SLiao Chunyu %cmp.not = icmp eq i32 %a, -17 187f4d2f7a3SLiao Chunyu %cond = select i1 %cmp.not, i32 %y, i32 %x 188f4d2f7a3SLiao Chunyu ret i32 %cond 189f4d2f7a3SLiao Chunyu} 190f4d2f7a3SLiao Chunyu 191f4d2f7a3SLiao Chunyudefine i32 @select_no_beqimm_2(i32 %a, i32 %x, i32 %y) { 192f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: select_no_beqimm_2: 193f4d2f7a3SLiao Chunyu; CHECK_NOPT: # %bb.0: # %entry 194f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: addi sp, sp, -16 195f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .cfi_def_cfa_offset 16 196f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a1, 8(sp) # 4-byte Folded Spill 197f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: li a1, 16 198f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a2, 12(sp) # 4-byte Folded Spill 199f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: beq a0, a1, .LBB6_2 200f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: # %bb.1: # %entry 201f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: lw a0, 8(sp) # 4-byte Folded Reload 202f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a0, 12(sp) # 4-byte Folded Spill 203f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .LBB6_2: # %entry 204f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: lw a0, 12(sp) # 4-byte Folded Reload 205f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: addi sp, sp, 16 206*97982a8cSdlav-sc; CHECK_NOPT-NEXT: .cfi_def_cfa_offset 0 207f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: ret 208f4d2f7a3SLiao Chunyu; 209f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: select_no_beqimm_2: 210f4d2f7a3SLiao Chunyu; CHECK_OPT: # %bb.0: # %entry 211f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: li a3, 16 212f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: beq a0, a3, .LBB6_2 213f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: # %bb.1: # %entry 214f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: mv a2, a1 215f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: .LBB6_2: # %entry 216f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: mv a0, a2 217f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: ret 218f4d2f7a3SLiao Chunyuentry: 219f4d2f7a3SLiao Chunyu %cmp.not = icmp eq i32 %a, 16 220f4d2f7a3SLiao Chunyu %cond = select i1 %cmp.not, i32 %y, i32 %x 221f4d2f7a3SLiao Chunyu ret i32 %cond 222f4d2f7a3SLiao Chunyu} 223f4d2f7a3SLiao Chunyu 224f4d2f7a3SLiao Chunyudefine i32 @select_bneimm_1(i32 %a, i32 %x, i32 %y) { 225f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: select_bneimm_1: 226f4d2f7a3SLiao Chunyu; CHECK_NOPT: # %bb.0: # %entry 227f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: addi sp, sp, -16 228f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .cfi_def_cfa_offset 16 229f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a1, 8(sp) # 4-byte Folded Spill 230f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a2, 12(sp) # 4-byte Folded Spill 231f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: cv.bneimm a0, 0, .LBB7_2 232f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: # %bb.1: # %entry 233f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: lw a0, 8(sp) # 4-byte Folded Reload 234f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: sw a0, 12(sp) # 4-byte Folded Spill 235f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: .LBB7_2: # %entry 236f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: lw a0, 12(sp) # 4-byte Folded Reload 237f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: addi sp, sp, 16 238*97982a8cSdlav-sc; CHECK_NOPT-NEXT: .cfi_def_cfa_offset 0 239f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT: ret 240f4d2f7a3SLiao Chunyu; 241f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: select_bneimm_1: 242f4d2f7a3SLiao Chunyu; CHECK_OPT: # %bb.0: # %entry 243f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: cv.bneimm a0, 0, .LBB7_2 244f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: # %bb.1: # %entry 245f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: mv a2, a1 246f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: .LBB7_2: # %entry 247f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: mv a0, a2 248f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT: ret 249f4d2f7a3SLiao Chunyuentry: 250f4d2f7a3SLiao Chunyu %cmp.not = icmp ne i32 %a, 0 251f4d2f7a3SLiao Chunyu %cond = select i1 %cmp.not, i32 %y, i32 %x 252f4d2f7a3SLiao Chunyu ret i32 %cond 253f4d2f7a3SLiao Chunyu} 254f4d2f7a3SLiao Chunyu 255