1 ; RUN: llvm-dis < %s.bc| FileCheck %s
2 ; RUN: verify-uselistorder < %s.bc
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
8 define void @fadd(float %x1, double %x2 ,half %x3, fp128 %x4, x86_fp80 %x5, ppc_fp128 %x6){
10 ; CHECK: %res1 = fadd float %x1, %x1
11 %res1 = fadd float %x1, %x1
13 ; CHECK-NEXT: %res2 = fadd double %x2, %x2
14 %res2 = fadd double %x2, %x2
16 ; CHECK-NEXT: %res3 = fadd half %x3, %x3
17 %res3 = fadd half %x3, %x3
19 ; CHECK-NEXT: %res4 = fadd fp128 %x4, %x4
20 %res4 = fadd fp128 %x4, %x4
22 ; CHECK-NEXT: %res5 = fadd x86_fp80 %x5, %x5
23 %res5 = fadd x86_fp80 %x5, %x5
25 ; CHECK-NEXT: %res6 = fadd ppc_fp128 %x6, %x6
26 %res6 = fadd ppc_fp128 %x6, %x6
31 define void @faddFloatVec(<2 x float> %x1, <3 x float> %x2 ,<4 x float> %x3, <8 x float> %x4, <16 x float> %x5){
33 ; CHECK: %res1 = fadd <2 x float> %x1, %x1
34 %res1 = fadd <2 x float> %x1, %x1
36 ; CHECK-NEXT: %res2 = fadd <3 x float> %x2, %x2
37 %res2 = fadd <3 x float> %x2, %x2
39 ; CHECK-NEXT: %res3 = fadd <4 x float> %x3, %x3
40 %res3 = fadd <4 x float> %x3, %x3
42 ; CHECK-NEXT: %res4 = fadd <8 x float> %x4, %x4
43 %res4 = fadd <8 x float> %x4, %x4
45 ; CHECK-NEXT: %res5 = fadd <16 x float> %x5, %x5
46 %res5 = fadd <16 x float> %x5, %x5
51 define void @faddDoubleVec(<2 x double> %x1, <3 x double> %x2 ,<4 x double> %x3, <8 x double> %x4, <16 x double> %x5){
53 ; CHECK: %res1 = fadd <2 x double> %x1, %x1
54 %res1 = fadd <2 x double> %x1, %x1
56 ; CHECK-NEXT: %res2 = fadd <3 x double> %x2, %x2
57 %res2 = fadd <3 x double> %x2, %x2
59 ; CHECK-NEXT: %res3 = fadd <4 x double> %x3, %x3
60 %res3 = fadd <4 x double> %x3, %x3
62 ; CHECK-NEXT: %res4 = fadd <8 x double> %x4, %x4
63 %res4 = fadd <8 x double> %x4, %x4
65 ; CHECK-NEXT: %res5 = fadd <16 x double> %x5, %x5
66 %res5 = fadd <16 x double> %x5, %x5
71 define void @faddHalfVec(<2 x half> %x1, <3 x half> %x2 ,<4 x half> %x3, <8 x half> %x4, <16 x half> %x5){
73 ; CHECK: %res1 = fadd <2 x half> %x1, %x1
74 %res1 = fadd <2 x half> %x1, %x1
76 ; CHECK-NEXT: %res2 = fadd <3 x half> %x2, %x2
77 %res2 = fadd <3 x half> %x2, %x2
79 ; CHECK-NEXT: %res3 = fadd <4 x half> %x3, %x3
80 %res3 = fadd <4 x half> %x3, %x3
82 ; CHECK-NEXT: %res4 = fadd <8 x half> %x4, %x4
83 %res4 = fadd <8 x half> %x4, %x4
85 ; CHECK-NEXT: %res5 = fadd <16 x half> %x5, %x5
86 %res5 = fadd <16 x half> %x5, %x5
91 define void @fsub(float %x1){
93 ; CHECK: %res1 = fsub float %x1, %x1
94 %res1 = fsub float %x1, %x1
99 define void @fmul(float %x1){
101 ; CHECK: %res1 = fmul float %x1, %x1
102 %res1 = fmul float %x1, %x1
107 define void @fdiv(float %x1){
109 ; CHECK: %res1 = fdiv float %x1, %x1
110 %res1 = fdiv float %x1, %x1
115 define void @frem(float %x1){
117 ; CHECK: %res1 = frem float %x1, %x1
118 %res1 = frem float %x1, %x1