xref: /llvm-project/llvm/test/CodeGen/MSP430/selectcc.ll (revision 7b3bbd83c0c24087072ec5b22a76799ab31f87d5)
138c265feSSanjay Patel; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
238c265feSSanjay Patel; RUN: llc -mtriple=msp430-- < %s | FileCheck %s
338c265feSSanjay Patel
438c265feSSanjay Pateldefine i16 @select_to_shifts_i16(i16 %a, i16 %b) {
538c265feSSanjay Patel; CHECK-LABEL: select_to_shifts_i16:
6*7b3bbd83SJay Foad; CHECK:       ; %bb.0:
7288079aaSSanjay Patel; CHECK-NEXT:    mov r12, r14
8288079aaSSanjay Patel; CHECK-NEXT:    clr r12
9288079aaSSanjay Patel; CHECK-NEXT:    bit #2, r14
10288079aaSSanjay Patel; CHECK-NEXT:    jeq .LBB0_2
11288079aaSSanjay Patel; CHECK-NEXT:  ; %bb.1:
12288079aaSSanjay Patel; CHECK-NEXT:    mov r13, r12
13288079aaSSanjay Patel; CHECK-NEXT:  .LBB0_2:
1438c265feSSanjay Patel; CHECK-NEXT:    ret
1538c265feSSanjay Patel  %and = and i16 %a, 2
1638c265feSSanjay Patel  %tobool = icmp eq i16 %and, 0
1738c265feSSanjay Patel  %select = select i1 %tobool, i16 0, i16 %b
1838c265feSSanjay Patel  ret i16 %select
1938c265feSSanjay Patel}
2038c265feSSanjay Patel
2138c265feSSanjay Pateldefine i32 @select_to_shifts_i32(i32 %a, i32 %b) {
2238c265feSSanjay Patel; CHECK-LABEL: select_to_shifts_i32:
23*7b3bbd83SJay Foad; CHECK:       ; %bb.0:
24*7b3bbd83SJay Foad; CHECK-NEXT:    mov r12, r11
25*7b3bbd83SJay Foad; CHECK-NEXT:    and #2, r11
26288079aaSSanjay Patel; CHECK-NEXT:    clr r13
27*7b3bbd83SJay Foad; CHECK-NEXT:    tst r11
28*7b3bbd83SJay Foad; CHECK-NEXT:    clr r12
29288079aaSSanjay Patel; CHECK-NEXT:    jne .LBB1_3
30288079aaSSanjay Patel; CHECK-NEXT:  ; %bb.1:
31*7b3bbd83SJay Foad; CHECK-NEXT:    tst r11
32288079aaSSanjay Patel; CHECK-NEXT:    jne .LBB1_4
33288079aaSSanjay Patel; CHECK-NEXT:  .LBB1_2:
34288079aaSSanjay Patel; CHECK-NEXT:    ret
35288079aaSSanjay Patel; CHECK-NEXT:  .LBB1_3:
36*7b3bbd83SJay Foad; CHECK-NEXT:    mov r14, r12
37*7b3bbd83SJay Foad; CHECK-NEXT:    tst r11
38288079aaSSanjay Patel; CHECK-NEXT:    jeq .LBB1_2
39288079aaSSanjay Patel; CHECK-NEXT:  .LBB1_4:
40288079aaSSanjay Patel; CHECK-NEXT:    mov r15, r13
4138c265feSSanjay Patel; CHECK-NEXT:    ret
4238c265feSSanjay Patel  %and = and i32 %a, 2
4338c265feSSanjay Patel  %tobool = icmp eq i32 %and, 0
4438c265feSSanjay Patel  %select = select i1 %tobool, i32 0, i32 %b
4538c265feSSanjay Patel  ret i32 %select
4638c265feSSanjay Patel}
47