Home | History | Annotate | Download | only in Bitcode
      1 ; RUN:  llvm-dis < %s.bc| FileCheck %s
      2 
      3 ; miscInstructions.3.2.ll.bc was generated by passing this file to llvm-as-3.2.
      4 ; The test checks that LLVM does not misread miscellaneous instructions of
      5 ; older bitcode files.
      6 
      7 define void @icmp(i32 %x1, i32 %x2, i32* %ptr1, i32* %ptr2, <2 x i32> %vec1, <2 x i32> %vec2){
      8 entry:
      9 ; CHECK: %res1 = icmp eq i32 %x1, %x2
     10   %res1 = icmp eq i32 %x1, %x2
     11   
     12 ; CHECK-NEXT: %res2 = icmp ne i32 %x1, %x2
     13   %res2 = icmp ne i32 %x1, %x2
     14   
     15 ; CHECK-NEXT: %res3 = icmp ugt i32 %x1, %x2
     16   %res3 = icmp ugt i32 %x1, %x2
     17   
     18 ; CHECK-NEXT: %res4 = icmp uge i32 %x1, %x2
     19   %res4 = icmp uge i32 %x1, %x2
     20   
     21 ; CHECK-NEXT: %res5 = icmp ult i32 %x1, %x2
     22   %res5 = icmp ult i32 %x1, %x2
     23   
     24 ; CHECK-NEXT: %res6 = icmp ule i32 %x1, %x2
     25   %res6 = icmp ule i32 %x1, %x2
     26   
     27 ; CHECK-NEXT: %res7 = icmp sgt i32 %x1, %x2
     28   %res7 = icmp sgt i32 %x1, %x2
     29   
     30 ; CHECK-NEXT: %res8 = icmp sge i32 %x1, %x2
     31   %res8 = icmp sge i32 %x1, %x2
     32   
     33 ; CHECK-NEXT: %res9 = icmp slt i32 %x1, %x2
     34   %res9 = icmp slt i32 %x1, %x2
     35   
     36 ; CHECK-NEXT: %res10 = icmp sle i32 %x1, %x2
     37   %res10 = icmp sle i32 %x1, %x2
     38   
     39 ; CHECK-NEXT: %res11 = icmp eq i32* %ptr1, %ptr2
     40   %res11 = icmp eq i32* %ptr1, %ptr2
     41   
     42 ; CHECK-NEXT: %res12 = icmp eq <2 x i32> %vec1, %vec2
     43   %res12 = icmp eq <2 x i32> %vec1, %vec2
     44   
     45   ret void
     46 }
     47 
     48 
     49 define void @fcmp(float %x1, float %x2, <2 x float> %vec1, <2 x float> %vec2){
     50 entry:
     51 ; CHECK: %res1 = fcmp oeq float %x1, %x2
     52   %res1 = fcmp oeq float %x1, %x2
     53   
     54 ; CHECK-NEXT: %res2 = fcmp one float %x1, %x2
     55   %res2 = fcmp one float %x1, %x2
     56   
     57 ; CHECK-NEXT: %res3 = fcmp ugt float %x1, %x2
     58   %res3 = fcmp ugt float %x1, %x2
     59   
     60 ; CHECK-NEXT: %res4 = fcmp uge float %x1, %x2
     61   %res4 = fcmp uge float %x1, %x2
     62   
     63 ; CHECK-NEXT: %res5 = fcmp ult float %x1, %x2
     64   %res5 = fcmp ult float %x1, %x2
     65   
     66 ; CHECK-NEXT: %res6 = fcmp ule float %x1, %x2
     67   %res6 = fcmp ule float %x1, %x2
     68   
     69 ; CHECK-NEXT: %res7 = fcmp ogt float %x1, %x2
     70   %res7 = fcmp ogt float %x1, %x2
     71   
     72 ; CHECK-NEXT: %res8 = fcmp oge float %x1, %x2
     73   %res8 = fcmp oge float %x1, %x2
     74   
     75 ; CHECK-NEXT: %res9 = fcmp olt float %x1, %x2
     76   %res9 = fcmp olt float %x1, %x2
     77   
     78 ; CHECK-NEXT: %res10 = fcmp ole float %x1, %x2
     79   %res10 = fcmp ole float %x1, %x2
     80   
     81 ; CHECK-NEXT: %res11 = fcmp ord float %x1, %x2
     82   %res11 = fcmp ord float %x1, %x2
     83   
     84 ; CHECK-NEXT: %res12 = fcmp ueq float %x1, %x2
     85   %res12 = fcmp ueq float %x1, %x2
     86   
     87 ; CHECK-NEXT: %res13 = fcmp une float %x1, %x2
     88   %res13 = fcmp une float %x1, %x2
     89   
     90 ; CHECK-NEXT: %res14 = fcmp uno float %x1, %x2
     91   %res14 = fcmp uno float %x1, %x2
     92   
     93 ; CHECK-NEXT: %res15 = fcmp true float %x1, %x2
     94   %res15 = fcmp true float %x1, %x2
     95   
     96 ; CHECK-NEXT: %res16 = fcmp false float %x1, %x2
     97   %res16 = fcmp false float %x1, %x2
     98   
     99 ; CHECK-NEXT: %res17 = fcmp oeq <2 x float> %vec1, %vec2
    100   %res17 = fcmp oeq <2 x float> %vec1, %vec2
    101   
    102   ret void
    103 }
    104 
    105 declare i32 @printf(i8* noalias nocapture, ...)
    106 
    107 define void @call(i32 %x, i8* %msg ){
    108 entry:
    109 
    110 ; CHECK: %res1 = call i32 @test(i32 %x)
    111   %res1 = call i32 @test(i32 %x)
    112   
    113 ; CHECK-NEXT: %res2 = tail call i32 @test(i32 %x)
    114   %res2 = tail call i32 @test(i32 %x)
    115   
    116 ; CHECK-NEXT: %res3 = call i32 (i8*, ...)* @printf(i8* %msg, i32 12, i8 42)
    117   %res3 = call i32 (i8*, ...)* @printf(i8* %msg, i32 12, i8 42)
    118   
    119   ret void
    120 }
    121 
    122 define i32 @test(i32 %x){
    123 entry:
    124 
    125   ret i32 %x
    126 }
    127