llvm.org GIT mirror llvm / d4d0115
Fix tests to use fadd, fsub, and fmul, instead of add, sub, and mul, when the type is floating-point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102969 91177308-0d34-0410-b5e6-96231b3b80d8 Dan Gohman 9 years ago
15 changed file(s) with 40 addition(s) and 40 deletion(s). Raw diff Collapse all Expand all
4040 ;CHECK: vadd.f32
4141 %tmp1 = load <2 x float>* %A
4242 %tmp2 = load <2 x float>* %B
43 %tmp3 = add <2 x float> %tmp1, %tmp2
43 %tmp3 = fadd <2 x float> %tmp1, %tmp2
4444 ret <2 x float> %tmp3
4545 }
4646
8585 ;CHECK: vadd.f32
8686 %tmp1 = load <4 x float>* %A
8787 %tmp2 = load <4 x float>* %B
88 %tmp3 = add <4 x float> %tmp1, %tmp2
88 %tmp3 = fadd <4 x float> %tmp1, %tmp2
8989 ret <4 x float> %tmp3
9090 }
9191
4949 %tmp1 = call %struct.__neon_float32x2x2_t @llvm.arm.neon.vld2.v2f32(i8* %tmp0)
5050 %tmp2 = extractvalue %struct.__neon_float32x2x2_t %tmp1, 0
5151 %tmp3 = extractvalue %struct.__neon_float32x2x2_t %tmp1, 1
52 %tmp4 = add <2 x float> %tmp2, %tmp3
52 %tmp4 = fadd <2 x float> %tmp2, %tmp3
5353 ret <2 x float> %tmp4
5454 }
5555
103103 %tmp1 = call %struct.__neon_float32x4x2_t @llvm.arm.neon.vld2.v4f32(i8* %tmp0)
104104 %tmp2 = extractvalue %struct.__neon_float32x4x2_t %tmp1, 0
105105 %tmp3 = extractvalue %struct.__neon_float32x4x2_t %tmp1, 1
106 %tmp4 = add <4 x float> %tmp2, %tmp3
106 %tmp4 = fadd <4 x float> %tmp2, %tmp3
107107 ret <4 x float> %tmp4
108108 }
109109
4949 %tmp1 = call %struct.__neon_float32x2x3_t @llvm.arm.neon.vld3.v2f32(i8* %tmp0)
5050 %tmp2 = extractvalue %struct.__neon_float32x2x3_t %tmp1, 0
5151 %tmp3 = extractvalue %struct.__neon_float32x2x3_t %tmp1, 2
52 %tmp4 = add <2 x float> %tmp2, %tmp3
52 %tmp4 = fadd <2 x float> %tmp2, %tmp3
5353 ret <2 x float> %tmp4
5454 }
5555
107107 %tmp1 = call %struct.__neon_float32x4x3_t @llvm.arm.neon.vld3.v4f32(i8* %tmp0)
108108 %tmp2 = extractvalue %struct.__neon_float32x4x3_t %tmp1, 0
109109 %tmp3 = extractvalue %struct.__neon_float32x4x3_t %tmp1, 2
110 %tmp4 = add <4 x float> %tmp2, %tmp3
110 %tmp4 = fadd <4 x float> %tmp2, %tmp3
111111 ret <4 x float> %tmp4
112112 }
113113
4949 %tmp1 = call %struct.__neon_float32x2x4_t @llvm.arm.neon.vld4.v2f32(i8* %tmp0)
5050 %tmp2 = extractvalue %struct.__neon_float32x2x4_t %tmp1, 0
5151 %tmp3 = extractvalue %struct.__neon_float32x2x4_t %tmp1, 2
52 %tmp4 = add <2 x float> %tmp2, %tmp3
52 %tmp4 = fadd <2 x float> %tmp2, %tmp3
5353 ret <2 x float> %tmp4
5454 }
5555
107107 %tmp1 = call %struct.__neon_float32x4x4_t @llvm.arm.neon.vld4.v4f32(i8* %tmp0)
108108 %tmp2 = extractvalue %struct.__neon_float32x4x4_t %tmp1, 0
109109 %tmp3 = extractvalue %struct.__neon_float32x4x4_t %tmp1, 2
110 %tmp4 = add <4 x float> %tmp2, %tmp3
110 %tmp4 = fadd <4 x float> %tmp2, %tmp3
111111 ret <4 x float> %tmp4
112112 }
113113
5151 %tmp2 = call %struct.__neon_float32x2x2_t @llvm.arm.neon.vld2lane.v2f32(i8* %tmp0, <2 x float> %tmp1, <2 x float> %tmp1, i32 1)
5252 %tmp3 = extractvalue %struct.__neon_float32x2x2_t %tmp2, 0
5353 %tmp4 = extractvalue %struct.__neon_float32x2x2_t %tmp2, 1
54 %tmp5 = add <2 x float> %tmp3, %tmp4
54 %tmp5 = fadd <2 x float> %tmp3, %tmp4
5555 ret <2 x float> %tmp5
5656 }
5757
8787 %tmp2 = call %struct.__neon_float32x4x2_t @llvm.arm.neon.vld2lane.v4f32(i8* %tmp0, <4 x float> %tmp1, <4 x float> %tmp1, i32 1)
8888 %tmp3 = extractvalue %struct.__neon_float32x4x2_t %tmp2, 0
8989 %tmp4 = extractvalue %struct.__neon_float32x4x2_t %tmp2, 1
90 %tmp5 = add <4 x float> %tmp3, %tmp4
90 %tmp5 = fadd <4 x float> %tmp3, %tmp4
9191 ret <4 x float> %tmp5
9292 }
9393
159159 %tmp3 = extractvalue %struct.__neon_float32x2x3_t %tmp2, 0
160160 %tmp4 = extractvalue %struct.__neon_float32x2x3_t %tmp2, 1
161161 %tmp5 = extractvalue %struct.__neon_float32x2x3_t %tmp2, 2
162 %tmp6 = add <2 x float> %tmp3, %tmp4
163 %tmp7 = add <2 x float> %tmp5, %tmp6
162 %tmp6 = fadd <2 x float> %tmp3, %tmp4
163 %tmp7 = fadd <2 x float> %tmp5, %tmp6
164164 ret <2 x float> %tmp7
165165 }
166166
201201 %tmp3 = extractvalue %struct.__neon_float32x4x3_t %tmp2, 0
202202 %tmp4 = extractvalue %struct.__neon_float32x4x3_t %tmp2, 1
203203 %tmp5 = extractvalue %struct.__neon_float32x4x3_t %tmp2, 2
204 %tmp6 = add <4 x float> %tmp3, %tmp4
205 %tmp7 = add <4 x float> %tmp5, %tmp6
204 %tmp6 = fadd <4 x float> %tmp3, %tmp4
205 %tmp7 = fadd <4 x float> %tmp5, %tmp6
206206 ret <4 x float> %tmp7
207207 }
208208
281281 %tmp4 = extractvalue %struct.__neon_float32x2x4_t %tmp2, 1
282282 %tmp5 = extractvalue %struct.__neon_float32x2x4_t %tmp2, 2
283283 %tmp6 = extractvalue %struct.__neon_float32x2x4_t %tmp2, 3
284 %tmp7 = add <2 x float> %tmp3, %tmp4
285 %tmp8 = add <2 x float> %tmp5, %tmp6
286 %tmp9 = add <2 x float> %tmp7, %tmp8
284 %tmp7 = fadd <2 x float> %tmp3, %tmp4
285 %tmp8 = fadd <2 x float> %tmp5, %tmp6
286 %tmp9 = fadd <2 x float> %tmp7, %tmp8
287287 ret <2 x float> %tmp9
288288 }
289289
329329 %tmp4 = extractvalue %struct.__neon_float32x4x4_t %tmp2, 1
330330 %tmp5 = extractvalue %struct.__neon_float32x4x4_t %tmp2, 2
331331 %tmp6 = extractvalue %struct.__neon_float32x4x4_t %tmp2, 3
332 %tmp7 = add <4 x float> %tmp3, %tmp4
333 %tmp8 = add <4 x float> %tmp5, %tmp6
334 %tmp9 = add <4 x float> %tmp7, %tmp8
332 %tmp7 = fadd <4 x float> %tmp3, %tmp4
333 %tmp8 = fadd <4 x float> %tmp5, %tmp6
334 %tmp9 = fadd <4 x float> %tmp7, %tmp8
335335 ret <4 x float> %tmp9
336336 }
337337
3838 %tmp1 = load <2 x float>* %A
3939 %tmp2 = load <2 x float>* %B
4040 %tmp3 = load <2 x float>* %C
41 %tmp4 = mul <2 x float> %tmp2, %tmp3
42 %tmp5 = add <2 x float> %tmp1, %tmp4
41 %tmp4 = fmul <2 x float> %tmp2, %tmp3
42 %tmp5 = fadd <2 x float> %tmp1, %tmp4
4343 ret <2 x float> %tmp5
4444 }
4545
8282 %tmp1 = load <4 x float>* %A
8383 %tmp2 = load <4 x float>* %B
8484 %tmp3 = load <4 x float>* %C
85 %tmp4 = mul <4 x float> %tmp2, %tmp3
86 %tmp5 = add <4 x float> %tmp1, %tmp4
85 %tmp4 = fmul <4 x float> %tmp2, %tmp3
86 %tmp5 = fadd <4 x float> %tmp1, %tmp4
8787 ret <4 x float> %tmp5
8888 }
8989
3838 %tmp1 = load <2 x float>* %A
3939 %tmp2 = load <2 x float>* %B
4040 %tmp3 = load <2 x float>* %C
41 %tmp4 = mul <2 x float> %tmp2, %tmp3
42 %tmp5 = sub <2 x float> %tmp1, %tmp4
41 %tmp4 = fmul <2 x float> %tmp2, %tmp3
42 %tmp5 = fsub <2 x float> %tmp1, %tmp4
4343 ret <2 x float> %tmp5
4444 }
4545
8282 %tmp1 = load <4 x float>* %A
8383 %tmp2 = load <4 x float>* %B
8484 %tmp3 = load <4 x float>* %C
85 %tmp4 = mul <4 x float> %tmp2, %tmp3
86 %tmp5 = sub <4 x float> %tmp1, %tmp4
85 %tmp4 = fmul <4 x float> %tmp2, %tmp3
86 %tmp5 = fsub <4 x float> %tmp1, %tmp4
8787 ret <4 x float> %tmp5
8888 }
8989
3131 ;CHECK: vmul.f32
3232 %tmp1 = load <2 x float>* %A
3333 %tmp2 = load <2 x float>* %B
34 %tmp3 = mul <2 x float> %tmp1, %tmp2
34 %tmp3 = fmul <2 x float> %tmp1, %tmp2
3535 ret <2 x float> %tmp3
3636 }
3737
7676 ;CHECK: vmul.f32
7777 %tmp1 = load <4 x float>* %A
7878 %tmp2 = load <4 x float>* %B
79 %tmp3 = mul <4 x float> %tmp1, %tmp2
79 %tmp3 = fmul <4 x float> %tmp1, %tmp2
8080 ret <4 x float> %tmp3
8181 }
8282
2727 ;CHECK: vnegf32:
2828 ;CHECK: vneg.f32
2929 %tmp1 = load <2 x float>* %A
30 %tmp2 = sub <2 x float> < float -0.000000e+00, float -0.000000e+00 >, %tmp1
30 %tmp2 = fsub <2 x float> < float -0.000000e+00, float -0.000000e+00 >, %tmp1
3131 ret <2 x float> %tmp2
3232 }
3333
5959 ;CHECK: vnegQf32:
6060 ;CHECK: vneg.f32
6161 %tmp1 = load <4 x float>* %A
62 %tmp2 = sub <4 x float> < float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00 >, %tmp1
62 %tmp2 = fsub <4 x float> < float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00 >, %tmp1
6363 ret <4 x float> %tmp2
6464 }
6565
4040 ;CHECK: vsub.f32
4141 %tmp1 = load <2 x float>* %A
4242 %tmp2 = load <2 x float>* %B
43 %tmp3 = sub <2 x float> %tmp1, %tmp2
43 %tmp3 = fsub <2 x float> %tmp1, %tmp2
4444 ret <2 x float> %tmp3
4545 }
4646
8585 ;CHECK: vsub.f32
8686 %tmp1 = load <4 x float>* %A
8787 %tmp2 = load <4 x float>* %B
88 %tmp3 = sub <4 x float> %tmp1, %tmp2
88 %tmp3 = fsub <4 x float> %tmp1, %tmp2
8989 ret <4 x float> %tmp3
9090 }
9191
4343 %tmp2 = load <2 x float>* %B
4444 %tmp3 = shufflevector <2 x float> %tmp1, <2 x float> %tmp2, <2 x i32>
4545 %tmp4 = shufflevector <2 x float> %tmp1, <2 x float> %tmp2, <2 x i32>
46 %tmp5 = add <2 x float> %tmp3, %tmp4
46 %tmp5 = fadd <2 x float> %tmp3, %tmp4
4747 ret <2 x float> %tmp5
4848 }
4949
9191 %tmp2 = load <4 x float>* %B
9292 %tmp3 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32>
9393 %tmp4 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32>
94 %tmp5 = add <4 x float> %tmp3, %tmp4
94 %tmp5 = fadd <4 x float> %tmp3, %tmp4
9595 ret <4 x float> %tmp5
9696 }
6969 %tmp2 = load <4 x float>* %B
7070 %tmp3 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32>
7171 %tmp4 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32>
72 %tmp5 = add <4 x float> %tmp3, %tmp4
72 %tmp5 = fadd <4 x float> %tmp3, %tmp4
7373 ret <4 x float> %tmp5
7474 }
6969 %tmp2 = load <4 x float>* %B
7070 %tmp3 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32>
7171 %tmp4 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32>
72 %tmp5 = add <4 x float> %tmp3, %tmp4
72 %tmp5 = fadd <4 x float> %tmp3, %tmp4
7373 ret <4 x float> %tmp5
7474 }
55
66 define <4 x float> @foo(<4 x float>* %P, <4 x float> %In) nounwind {
77 %A = load <4 x float>* %P, align 4
8 %B = add <4 x float> %A, %In
8 %B = fadd <4 x float> %A, %In
99 ret <4 x float> %B
1010 }
3030 entry:
3131 ; CHECK: andl{{.*}}$-32, %esp
3232 call void @test2()
33 %A = mul <2 x double> %x, %y
33 %A = fmul <2 x double> %x, %y
3434 ret <2 x double> %A
3535 }
3636