mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-12 13:30:51 +00:00
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
This commit is contained in:
parent
b4c14aaa50
commit
d4d01154ef
@ -41,7 +41,7 @@ define <2 x float> @vaddf32(<2 x float>* %A, <2 x float>* %B) nounwind {
|
||||
;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
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ define <4 x float> @vaddQf32(<4 x float>* %A, <4 x float>* %B) nounwind {
|
||||
;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
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,7 @@ define <2 x float> @vld2f(float* %A) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
@ -104,7 +104,7 @@ define <4 x float> @vld2Qf(float* %A) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,7 @@ define <2 x float> @vld3f(float* %A) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
@ -108,7 +108,7 @@ define <4 x float> @vld3Qf(float* %A) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,7 @@ define <2 x float> @vld4f(float* %A) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
@ -108,7 +108,7 @@ define <4 x float> @vld4Qf(float* %A) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
|
@ -52,7 +52,7 @@ define <2 x float> @vld2lanef(float* %A, <2 x float>* %B) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
@ -88,7 +88,7 @@ define <4 x float> @vld2laneQf(float* %A, <4 x float>* %B) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
@ -160,8 +160,8 @@ define <2 x float> @vld3lanef(float* %A, <2 x float>* %B) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
@ -202,8 +202,8 @@ define <4 x float> @vld3laneQf(float* %A, <4 x float>* %B) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
@ -282,9 +282,9 @@ define <2 x float> @vld4lanef(float* %A, <2 x float>* %B) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
@ -330,9 +330,9 @@ define <4 x float> @vld4laneQf(float* %A, <4 x float>* %B) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
|
@ -39,8 +39,8 @@ define <2 x float> @vmlaf32(<2 x float>* %A, <2 x float>* %B, <2 x float>* %C) n
|
||||
%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
|
||||
}
|
||||
|
||||
@ -83,8 +83,8 @@ define <4 x float> @vmlaQf32(<4 x float>* %A, <4 x float>* %B, <4 x float>* %C)
|
||||
%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
|
||||
}
|
||||
|
||||
|
@ -39,8 +39,8 @@ define <2 x float> @vmlsf32(<2 x float>* %A, <2 x float>* %B, <2 x float>* %C) n
|
||||
%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
|
||||
}
|
||||
|
||||
@ -83,8 +83,8 @@ define <4 x float> @vmlsQf32(<4 x float>* %A, <4 x float>* %B, <4 x float>* %C)
|
||||
%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
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ define <2 x float> @vmulf32(<2 x float>* %A, <2 x float>* %B) nounwind {
|
||||
;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
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ define <4 x float> @vmulQf32(<4 x float>* %A, <4 x float>* %B) nounwind {
|
||||
;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
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,7 @@ define <2 x float> @vnegf32(<2 x float>* %A) nounwind {
|
||||
;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
|
||||
}
|
||||
|
||||
@ -60,7 +60,7 @@ define <4 x float> @vnegQf32(<4 x float>* %A) nounwind {
|
||||
;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
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ define <2 x float> @vsubf32(<2 x float>* %A, <2 x float>* %B) nounwind {
|
||||
;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
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ define <4 x float> @vsubQf32(<4 x float>* %A, <4 x float>* %B) nounwind {
|
||||
;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
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ define <2 x float> @vtrnf(<2 x float>* %A, <2 x float>* %B) nounwind {
|
||||
%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
|
||||
}
|
||||
|
||||
@ -92,6 +92,6 @@ define <4 x float> @vtrnQf(<4 x float>* %A, <4 x float>* %B) nounwind {
|
||||
%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
|
||||
}
|
||||
|
@ -70,6 +70,6 @@ define <4 x float> @vuzpQf(<4 x float>* %A, <4 x float>* %B) nounwind {
|
||||
%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
|
||||
}
|
||||
|
@ -70,6 +70,6 @@ define <4 x float> @vzipQf(<4 x float>* %A, <4 x float>* %B) nounwind {
|
||||
%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
|
||||
}
|
||||
|
@ -6,6 +6,6 @@ target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
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
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ define <2 x double> @test3(<2 x double> %x, <2 x double> %y) alignstack(32) {
|
||||
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
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user