;CHECK: vadd.f32
%tmp1 = load <2 x float>* %A
%tmp2 = load <2 x float>* %B
- %tmp3 = add <2 x float> %tmp1, %tmp2
+ %tmp3 = fadd <2 x float> %tmp1, %tmp2
ret <2 x float> %tmp3
}
;CHECK: vadd.f32
%tmp1 = load <4 x float>* %A
%tmp2 = load <4 x float>* %B
- %tmp3 = add <4 x float> %tmp1, %tmp2
+ %tmp3 = fadd <4 x float> %tmp1, %tmp2
ret <4 x float> %tmp3
}
%tmp1 = call %struct.__neon_float32x2x2_t @llvm.arm.neon.vld2.v2f32(i8* %tmp0)
%tmp2 = extractvalue %struct.__neon_float32x2x2_t %tmp1, 0
%tmp3 = extractvalue %struct.__neon_float32x2x2_t %tmp1, 1
- %tmp4 = add <2 x float> %tmp2, %tmp3
+ %tmp4 = fadd <2 x float> %tmp2, %tmp3
ret <2 x float> %tmp4
}
%tmp1 = call %struct.__neon_float32x4x2_t @llvm.arm.neon.vld2.v4f32(i8* %tmp0)
%tmp2 = extractvalue %struct.__neon_float32x4x2_t %tmp1, 0
%tmp3 = extractvalue %struct.__neon_float32x4x2_t %tmp1, 1
- %tmp4 = add <4 x float> %tmp2, %tmp3
+ %tmp4 = fadd <4 x float> %tmp2, %tmp3
ret <4 x float> %tmp4
}
%tmp1 = call %struct.__neon_float32x2x3_t @llvm.arm.neon.vld3.v2f32(i8* %tmp0)
%tmp2 = extractvalue %struct.__neon_float32x2x3_t %tmp1, 0
%tmp3 = extractvalue %struct.__neon_float32x2x3_t %tmp1, 2
- %tmp4 = add <2 x float> %tmp2, %tmp3
+ %tmp4 = fadd <2 x float> %tmp2, %tmp3
ret <2 x float> %tmp4
}
%tmp1 = call %struct.__neon_float32x4x3_t @llvm.arm.neon.vld3.v4f32(i8* %tmp0)
%tmp2 = extractvalue %struct.__neon_float32x4x3_t %tmp1, 0
%tmp3 = extractvalue %struct.__neon_float32x4x3_t %tmp1, 2
- %tmp4 = add <4 x float> %tmp2, %tmp3
+ %tmp4 = fadd <4 x float> %tmp2, %tmp3
ret <4 x float> %tmp4
}
%tmp1 = call %struct.__neon_float32x2x4_t @llvm.arm.neon.vld4.v2f32(i8* %tmp0)
%tmp2 = extractvalue %struct.__neon_float32x2x4_t %tmp1, 0
%tmp3 = extractvalue %struct.__neon_float32x2x4_t %tmp1, 2
- %tmp4 = add <2 x float> %tmp2, %tmp3
+ %tmp4 = fadd <2 x float> %tmp2, %tmp3
ret <2 x float> %tmp4
}
%tmp1 = call %struct.__neon_float32x4x4_t @llvm.arm.neon.vld4.v4f32(i8* %tmp0)
%tmp2 = extractvalue %struct.__neon_float32x4x4_t %tmp1, 0
%tmp3 = extractvalue %struct.__neon_float32x4x4_t %tmp1, 2
- %tmp4 = add <4 x float> %tmp2, %tmp3
+ %tmp4 = fadd <4 x float> %tmp2, %tmp3
ret <4 x float> %tmp4
}
%tmp2 = call %struct.__neon_float32x2x2_t @llvm.arm.neon.vld2lane.v2f32(i8* %tmp0, <2 x float> %tmp1, <2 x float> %tmp1, i32 1)
%tmp3 = extractvalue %struct.__neon_float32x2x2_t %tmp2, 0
%tmp4 = extractvalue %struct.__neon_float32x2x2_t %tmp2, 1
- %tmp5 = add <2 x float> %tmp3, %tmp4
+ %tmp5 = fadd <2 x float> %tmp3, %tmp4
ret <2 x float> %tmp5
}
%tmp2 = call %struct.__neon_float32x4x2_t @llvm.arm.neon.vld2lane.v4f32(i8* %tmp0, <4 x float> %tmp1, <4 x float> %tmp1, i32 1)
%tmp3 = extractvalue %struct.__neon_float32x4x2_t %tmp2, 0
%tmp4 = extractvalue %struct.__neon_float32x4x2_t %tmp2, 1
- %tmp5 = add <4 x float> %tmp3, %tmp4
+ %tmp5 = fadd <4 x float> %tmp3, %tmp4
ret <4 x float> %tmp5
}
%tmp3 = extractvalue %struct.__neon_float32x2x3_t %tmp2, 0
%tmp4 = extractvalue %struct.__neon_float32x2x3_t %tmp2, 1
%tmp5 = extractvalue %struct.__neon_float32x2x3_t %tmp2, 2
- %tmp6 = add <2 x float> %tmp3, %tmp4
- %tmp7 = add <2 x float> %tmp5, %tmp6
+ %tmp6 = fadd <2 x float> %tmp3, %tmp4
+ %tmp7 = fadd <2 x float> %tmp5, %tmp6
ret <2 x float> %tmp7
}
%tmp3 = extractvalue %struct.__neon_float32x4x3_t %tmp2, 0
%tmp4 = extractvalue %struct.__neon_float32x4x3_t %tmp2, 1
%tmp5 = extractvalue %struct.__neon_float32x4x3_t %tmp2, 2
- %tmp6 = add <4 x float> %tmp3, %tmp4
- %tmp7 = add <4 x float> %tmp5, %tmp6
+ %tmp6 = fadd <4 x float> %tmp3, %tmp4
+ %tmp7 = fadd <4 x float> %tmp5, %tmp6
ret <4 x float> %tmp7
}
%tmp4 = extractvalue %struct.__neon_float32x2x4_t %tmp2, 1
%tmp5 = extractvalue %struct.__neon_float32x2x4_t %tmp2, 2
%tmp6 = extractvalue %struct.__neon_float32x2x4_t %tmp2, 3
- %tmp7 = add <2 x float> %tmp3, %tmp4
- %tmp8 = add <2 x float> %tmp5, %tmp6
- %tmp9 = add <2 x float> %tmp7, %tmp8
+ %tmp7 = fadd <2 x float> %tmp3, %tmp4
+ %tmp8 = fadd <2 x float> %tmp5, %tmp6
+ %tmp9 = fadd <2 x float> %tmp7, %tmp8
ret <2 x float> %tmp9
}
%tmp4 = extractvalue %struct.__neon_float32x4x4_t %tmp2, 1
%tmp5 = extractvalue %struct.__neon_float32x4x4_t %tmp2, 2
%tmp6 = extractvalue %struct.__neon_float32x4x4_t %tmp2, 3
- %tmp7 = add <4 x float> %tmp3, %tmp4
- %tmp8 = add <4 x float> %tmp5, %tmp6
- %tmp9 = add <4 x float> %tmp7, %tmp8
+ %tmp7 = fadd <4 x float> %tmp3, %tmp4
+ %tmp8 = fadd <4 x float> %tmp5, %tmp6
+ %tmp9 = fadd <4 x float> %tmp7, %tmp8
ret <4 x float> %tmp9
}
%tmp1 = load <2 x float>* %A
%tmp2 = load <2 x float>* %B
%tmp3 = load <2 x float>* %C
- %tmp4 = mul <2 x float> %tmp2, %tmp3
- %tmp5 = add <2 x float> %tmp1, %tmp4
+ %tmp4 = fmul <2 x float> %tmp2, %tmp3
+ %tmp5 = fadd <2 x float> %tmp1, %tmp4
ret <2 x float> %tmp5
}
%tmp1 = load <4 x float>* %A
%tmp2 = load <4 x float>* %B
%tmp3 = load <4 x float>* %C
- %tmp4 = mul <4 x float> %tmp2, %tmp3
- %tmp5 = add <4 x float> %tmp1, %tmp4
+ %tmp4 = fmul <4 x float> %tmp2, %tmp3
+ %tmp5 = fadd <4 x float> %tmp1, %tmp4
ret <4 x float> %tmp5
}
%tmp1 = load <2 x float>* %A
%tmp2 = load <2 x float>* %B
%tmp3 = load <2 x float>* %C
- %tmp4 = mul <2 x float> %tmp2, %tmp3
- %tmp5 = sub <2 x float> %tmp1, %tmp4
+ %tmp4 = fmul <2 x float> %tmp2, %tmp3
+ %tmp5 = fsub <2 x float> %tmp1, %tmp4
ret <2 x float> %tmp5
}
%tmp1 = load <4 x float>* %A
%tmp2 = load <4 x float>* %B
%tmp3 = load <4 x float>* %C
- %tmp4 = mul <4 x float> %tmp2, %tmp3
- %tmp5 = sub <4 x float> %tmp1, %tmp4
+ %tmp4 = fmul <4 x float> %tmp2, %tmp3
+ %tmp5 = fsub <4 x float> %tmp1, %tmp4
ret <4 x float> %tmp5
}
;CHECK: vmul.f32
%tmp1 = load <2 x float>* %A
%tmp2 = load <2 x float>* %B
- %tmp3 = mul <2 x float> %tmp1, %tmp2
+ %tmp3 = fmul <2 x float> %tmp1, %tmp2
ret <2 x float> %tmp3
}
;CHECK: vmul.f32
%tmp1 = load <4 x float>* %A
%tmp2 = load <4 x float>* %B
- %tmp3 = mul <4 x float> %tmp1, %tmp2
+ %tmp3 = fmul <4 x float> %tmp1, %tmp2
ret <4 x float> %tmp3
}
;CHECK: vnegf32:
;CHECK: vneg.f32
%tmp1 = load <2 x float>* %A
- %tmp2 = sub <2 x float> < float -0.000000e+00, float -0.000000e+00 >, %tmp1
+ %tmp2 = fsub <2 x float> < float -0.000000e+00, float -0.000000e+00 >, %tmp1
ret <2 x float> %tmp2
}
;CHECK: vnegQf32:
;CHECK: vneg.f32
%tmp1 = load <4 x float>* %A
- %tmp2 = sub <4 x float> < float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00 >, %tmp1
+ %tmp2 = fsub <4 x float> < float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00 >, %tmp1
ret <4 x float> %tmp2
}
;CHECK: vsub.f32
%tmp1 = load <2 x float>* %A
%tmp2 = load <2 x float>* %B
- %tmp3 = sub <2 x float> %tmp1, %tmp2
+ %tmp3 = fsub <2 x float> %tmp1, %tmp2
ret <2 x float> %tmp3
}
;CHECK: vsub.f32
%tmp1 = load <4 x float>* %A
%tmp2 = load <4 x float>* %B
- %tmp3 = sub <4 x float> %tmp1, %tmp2
+ %tmp3 = fsub <4 x float> %tmp1, %tmp2
ret <4 x float> %tmp3
}
%tmp2 = load <2 x float>* %B
%tmp3 = shufflevector <2 x float> %tmp1, <2 x float> %tmp2, <2 x i32> <i32 0, i32 2>
%tmp4 = shufflevector <2 x float> %tmp1, <2 x float> %tmp2, <2 x i32> <i32 1, i32 3>
- %tmp5 = add <2 x float> %tmp3, %tmp4
+ %tmp5 = fadd <2 x float> %tmp3, %tmp4
ret <2 x float> %tmp5
}
%tmp2 = load <4 x float>* %B
%tmp3 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
%tmp4 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
- %tmp5 = add <4 x float> %tmp3, %tmp4
+ %tmp5 = fadd <4 x float> %tmp3, %tmp4
ret <4 x float> %tmp5
}
%tmp2 = load <4 x float>* %B
%tmp3 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
%tmp4 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
- %tmp5 = add <4 x float> %tmp3, %tmp4
+ %tmp5 = fadd <4 x float> %tmp3, %tmp4
ret <4 x float> %tmp5
}
%tmp2 = load <4 x float>* %B
%tmp3 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
%tmp4 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
- %tmp5 = add <4 x float> %tmp3, %tmp4
+ %tmp5 = fadd <4 x float> %tmp3, %tmp4
ret <4 x float> %tmp5
}
define <4 x float> @foo(<4 x float>* %P, <4 x float> %In) nounwind {
%A = load <4 x float>* %P, align 4
- %B = add <4 x float> %A, %In
+ %B = fadd <4 x float> %A, %In
ret <4 x float> %B
}
entry:
; CHECK: andl{{.*}}$-32, %esp
call void @test2()
- %A = mul <2 x double> %x, %y
+ %A = fmul <2 x double> %x, %y
ret <2 x double> %A
}