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