Home | History | Annotate | Download | only in Bitcode
      1 ; RUN: llvm-dis < %s.bc| FileCheck %s
      2 ; RUN: verify-uselistorder < %s.bc
      3 
      4 ; BinaryFloatOperation.3.2.ll.bc was generated by passing this file to llvm-as-3.2.
      5 ; The test checks that LLVM does not misread binary float instructions from
      6 ; older bitcode files.
      7 
      8 define void @fadd(float %x1, double %x2 ,half %x3, fp128 %x4, x86_fp80 %x5, ppc_fp128 %x6){
      9 entry:
     10 ; CHECK: %res1 = fadd float %x1, %x1
     11   %res1 = fadd float %x1, %x1
     12 
     13 ; CHECK-NEXT: %res2 = fadd double %x2, %x2
     14   %res2 = fadd double %x2, %x2
     15 
     16 ; CHECK-NEXT: %res3 = fadd half %x3, %x3
     17   %res3 = fadd half %x3, %x3
     18 
     19 ; CHECK-NEXT: %res4 = fadd fp128 %x4, %x4
     20   %res4 = fadd fp128 %x4, %x4
     21 
     22 ; CHECK-NEXT: %res5 = fadd x86_fp80 %x5, %x5
     23   %res5 = fadd x86_fp80 %x5, %x5
     24 
     25 ; CHECK-NEXT: %res6 = fadd ppc_fp128 %x6, %x6
     26   %res6 = fadd ppc_fp128 %x6, %x6
     27 
     28   ret void
     29 }
     30 
     31 define void @faddFloatVec(<2 x float> %x1, <3 x float> %x2 ,<4 x float> %x3, <8 x float> %x4, <16 x float> %x5){
     32 entry:
     33 ; CHECK: %res1 = fadd <2 x float> %x1, %x1
     34   %res1 = fadd <2 x float> %x1, %x1
     35 
     36 ; CHECK-NEXT: %res2 = fadd <3 x float> %x2, %x2
     37   %res2 = fadd <3 x float> %x2, %x2
     38 
     39 ; CHECK-NEXT: %res3 = fadd <4 x float> %x3, %x3
     40   %res3 = fadd <4 x float> %x3, %x3
     41 
     42 ; CHECK-NEXT: %res4 = fadd <8 x float> %x4, %x4
     43   %res4 = fadd <8 x float> %x4, %x4
     44 
     45 ; CHECK-NEXT: %res5 = fadd <16 x float> %x5, %x5
     46   %res5 = fadd <16 x float> %x5, %x5
     47 
     48   ret void
     49 }
     50 
     51 define void @faddDoubleVec(<2 x double> %x1, <3 x double> %x2 ,<4 x double> %x3, <8 x double> %x4, <16 x double> %x5){
     52 entry:
     53 ; CHECK: %res1 = fadd <2 x double> %x1, %x1
     54   %res1 = fadd <2 x double> %x1, %x1
     55 
     56 ; CHECK-NEXT: %res2 = fadd <3 x double> %x2, %x2
     57   %res2 = fadd <3 x double> %x2, %x2
     58 
     59 ; CHECK-NEXT: %res3 = fadd <4 x double> %x3, %x3
     60   %res3 = fadd <4 x double> %x3, %x3
     61 
     62 ; CHECK-NEXT: %res4 = fadd <8 x double> %x4, %x4
     63   %res4 = fadd <8 x double> %x4, %x4
     64 
     65 ; CHECK-NEXT: %res5 = fadd <16 x double> %x5, %x5
     66   %res5 = fadd <16 x double> %x5, %x5
     67 
     68   ret void
     69 }
     70 
     71 define void @faddHalfVec(<2 x half> %x1, <3 x half> %x2 ,<4 x half> %x3, <8 x half> %x4, <16 x half> %x5){
     72 entry:
     73 ; CHECK: %res1 = fadd <2 x half> %x1, %x1
     74   %res1 = fadd <2 x half> %x1, %x1
     75 
     76 ; CHECK-NEXT: %res2 = fadd <3 x half> %x2, %x2
     77   %res2 = fadd <3 x half> %x2, %x2
     78 
     79 ; CHECK-NEXT: %res3 = fadd <4 x half> %x3, %x3
     80   %res3 = fadd <4 x half> %x3, %x3
     81 
     82 ; CHECK-NEXT: %res4 = fadd <8 x half> %x4, %x4
     83   %res4 = fadd <8 x half> %x4, %x4
     84 
     85 ; CHECK-NEXT: %res5 = fadd <16 x half> %x5, %x5
     86   %res5 = fadd <16 x half> %x5, %x5
     87 
     88   ret void
     89 }
     90 
     91 define void @fsub(float %x1){
     92 entry:
     93 ; CHECK: %res1 = fsub float %x1, %x1
     94   %res1 = fsub float %x1, %x1
     95 
     96   ret void
     97 }
     98 
     99 define void @fmul(float %x1){
    100 entry:
    101 ; CHECK: %res1 = fmul float %x1, %x1
    102   %res1 = fmul float %x1, %x1
    103 
    104   ret void
    105 }
    106 
    107 define void @fdiv(float %x1){
    108 entry:
    109 ; CHECK: %res1 = fdiv float %x1, %x1
    110   %res1 = fdiv float %x1, %x1
    111 
    112   ret void
    113 }
    114 
    115 define void @frem(float %x1){
    116 entry:
    117 ; CHECK: %res1 = frem float %x1, %x1
    118   %res1 = frem float %x1, %x1
    119 
    120   ret void
    121 }
    122