blob: cec16839f9ccc5721a8d363f0899aeaca042f733 [file] [log] [blame]
Duncan P. N. Exon Smith15f92a32014-07-29 01:10:57 +00001; RUN: llvm-dis < %s.bc| FileCheck %s
Duncan P. N. Exon Smith13f5c582014-08-19 21:08:27 +00002; RUN: verify-uselistorder < %s.bc
Duncan P. N. Exon Smith15f92a32014-07-29 01:10:57 +00003
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
8define void @fadd(float %x1, double %x2 ,half %x3, fp128 %x4, x86_fp80 %x5, ppc_fp128 %x6){
9entry:
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
31define void @faddFloatVec(<2 x float> %x1, <3 x float> %x2 ,<4 x float> %x3, <8 x float> %x4, <16 x float> %x5){
32entry:
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
51define void @faddDoubleVec(<2 x double> %x1, <3 x double> %x2 ,<4 x double> %x3, <8 x double> %x4, <16 x double> %x5){
52entry:
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
71define void @faddHalfVec(<2 x half> %x1, <3 x half> %x2 ,<4 x half> %x3, <8 x half> %x4, <16 x half> %x5){
72entry:
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
91define void @fsub(float %x1){
92entry:
93; CHECK: %res1 = fsub float %x1, %x1
94 %res1 = fsub float %x1, %x1
95
96 ret void
97}
98
99define void @fmul(float %x1){
100entry:
101; CHECK: %res1 = fmul float %x1, %x1
102 %res1 = fmul float %x1, %x1
103
104 ret void
105}
106
107define void @fdiv(float %x1){
108entry:
109; CHECK: %res1 = fdiv float %x1, %x1
110 %res1 = fdiv float %x1, %x1
111
112 ret void
113}
114
115define void @frem(float %x1){
116entry:
117; CHECK: %res1 = frem float %x1, %x1
118 %res1 = frem float %x1, %x1
119
120 ret void
121}