Home | History | Annotate | Download | only in XCore
      1 ; RUN: llc < %s -march=xcore -asm-verbose=0 | FileCheck %s
      2 define i32 @ashr(i32 %a, i32 %b) nounwind {
      3 	%1 = ashr i32 %a, %b
      4 	ret i32 %1
      5 }
      6 ; CHECK-LABEL: ashr:
      7 ; CHECK-NEXT: ashr r0, r0, r1
      8 
      9 define i32 @ashri1(i32 %a) nounwind {
     10 	%1 = ashr i32 %a, 24
     11 	ret i32 %1
     12 }
     13 ; CHECK-LABEL: ashri1:
     14 ; CHECK-NEXT: ashr r0, r0, 24
     15 
     16 define i32 @ashri2(i32 %a) nounwind {
     17 	%1 = ashr i32 %a, 31
     18 	ret i32 %1
     19 }
     20 ; CHECK-LABEL: ashri2:
     21 ; CHECK-NEXT: ashr r0, r0, 32
     22 
     23 define i32 @f1(i32 %a) nounwind nounwind {
     24         %1 = icmp slt i32 %a, 0
     25 	br i1 %1, label %less, label %not_less
     26 less:
     27 	ret i32 10
     28 not_less:
     29 	ret i32 17
     30 }
     31 ; CHECK-LABEL: f1:
     32 ; CHECK-NEXT: ashr r0, r0, 32
     33 ; CHECK-NEXT: bt r0
     34 
     35 define i32 @f2(i32 %a) nounwind {
     36         %1 = icmp sge i32 %a, 0
     37 	br i1 %1, label %greater, label %not_greater
     38 greater:
     39 	ret i32 10
     40 not_greater:
     41 	ret i32 17
     42 }
     43 ; CHECK-LABEL: f2:
     44 ; CHECK-NEXT: ashr r0, r0, 32
     45 ; CHECK-NEXT: bt r0
     46 
     47 define i32 @f3(i32 %a) nounwind {
     48         %1 = icmp slt i32 %a, 0
     49 	%2 = select i1 %1, i32 10, i32 17
     50 	ret i32 %2
     51 }
     52 ; CHECK-LABEL: f3:
     53 ; CHECK-NEXT: ashr r0, r0, 32
     54 ; CHECK-NEXT: bt r0
     55 ; CHECK-NEXT: ldc r0, 17
     56 ; CHECK: ldc r0, 10
     57 
     58 define i32 @f4(i32 %a) nounwind {
     59         %1 = icmp sge i32 %a, 0
     60 	%2 = select i1 %1, i32 10, i32 17
     61 	ret i32 %2
     62 }
     63 ; CHECK-LABEL: f4:
     64 ; CHECK-NEXT: ashr r0, r0, 32
     65 ; CHECK-NEXT: bt r0
     66 ; CHECK-NEXT: ldc r0, 10
     67 ; CHECK: ldc r0, 17
     68 
     69 define i32 @f5(i32 %a) nounwind {
     70         %1 = icmp sge i32 %a, 0
     71 	%2 = zext i1 %1 to i32
     72 	ret i32 %2
     73 }
     74 ; CHECK-LABEL: f5:
     75 ; CHECK-NEXT: ashr r0, r0, 32
     76 ; CHECK-NEXT: eq r0, r0, 0
     77