| Index: tests_lit/llvm2ice_tests/fp.arm.call.ll
|
| diff --git a/tests_lit/llvm2ice_tests/fp.arm.call.ll b/tests_lit/llvm2ice_tests/fp.arm.call.ll
|
| index 1e0c6e789dc3db482b8d8b351a0671ce019e68ac..10ae3168c2e0c306cf973ac1d24dc65b9498044a 100644
|
| --- a/tests_lit/llvm2ice_tests/fp.arm.call.ll
|
| +++ b/tests_lit/llvm2ice_tests/fp.arm.call.ll
|
| @@ -63,29 +63,39 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-LABEL: floatHarness
|
| call void @float1(float 1.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| -; CHECK: bl {{.*}} float1
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float1
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float2(float 1.0, float 2.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| ; CHECK-DAG: vmov.f32 s1
|
| -; CHECK: bl {{.*}} float2
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float2
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float3(float 1.0, float 2.0, float 3.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| ; CHECK-DAG: vmov.f32 s1
|
| ; CHECK-DAG: vmov.f32 s2
|
| -; CHECK: bl {{.*}} float3
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float3
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float4(float 1.0, float 2.0, float 3.0, float 4.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| ; CHECK-DAG: vmov.f32 s1
|
| ; CHECK-DAG: vmov.f32 s2
|
| ; CHECK-DAG: vmov.f32 s3
|
| -; CHECK: bl {{.*}} float4
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float4
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float5(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| ; CHECK-DAG: vmov.f32 s1
|
| ; CHECK-DAG: vmov.f32 s2
|
| ; CHECK-DAG: vmov.f32 s3
|
| ; CHECK-DAG: vmov.f32 s4
|
| -; CHECK: bl {{.*}} float5
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float5
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float6(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| @@ -94,7 +104,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s3
|
| ; CHECK-DAG: vmov.f32 s4
|
| ; CHECK-DAG: vmov.f32 s5
|
| -; CHECK: bl {{.*}} float6
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float6
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float7(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0, float 7.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| @@ -104,7 +116,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s4
|
| ; CHECK-DAG: vmov.f32 s5
|
| ; CHECK-DAG: vmov.f32 s6
|
| -; CHECK: bl {{.*}} float7
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float7
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float8(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0, float 7.0, float 8.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| @@ -115,7 +129,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s5
|
| ; CHECK-DAG: vmov.f32 s6
|
| ; CHECK-DAG: vmov.f32 s7
|
| -; CHECK: bl {{.*}} float8
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float8
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float9(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0, float 7.0, float 8.0, float 9.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| @@ -127,7 +143,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s6
|
| ; CHECK-DAG: vmov.f32 s7
|
| ; CHECK-DAG: vmov.f32 s8
|
| -; CHECK: bl {{.*}} float9
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float9
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float10(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0, float 7.0, float 8.0, float 9.0, float 10.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| @@ -140,7 +158,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s7
|
| ; CHECK-DAG: vmov.f32 s8
|
| ; CHECK-DAG: vmov.f32 s9
|
| -; CHECK: bl {{.*}} float10
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float10
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float11(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
|
| float 11.0)
|
| @@ -155,7 +175,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s8
|
| ; CHECK-DAG: vmov.f32 s9
|
| ; CHECK-DAG: vmov.f32 s10
|
| -; CHECK: bl {{.*}} float11
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float11
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float12(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
|
| float 11.0, float 12.0)
|
| @@ -171,7 +193,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s9
|
| ; CHECK-DAG: vmov.f32 s10
|
| ; CHECK-DAG: vmov.f32 s11
|
| -; CHECK: bl {{.*}} float12
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float12
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float13(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
|
| float 11.0, float 12.0, float 13.0)
|
| @@ -188,7 +212,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s10
|
| ; CHECK-DAG: vmov.f32 s11
|
| ; CHECK-DAG: vmov.f32 s12
|
| -; CHECK: bl {{.*}} float13
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float13
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float14(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
|
| float 11.0, float 12.0, float 13.0, float 14.0)
|
| @@ -206,7 +232,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s11
|
| ; CHECK-DAG: vmov.f32 s12
|
| ; CHECK-DAG: vmov.f32 s13
|
| -; CHECK: bl {{.*}} float14
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float14
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float15(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
|
| float 11.0, float 12.0, float 13.0, float 14.0,
|
| @@ -226,7 +254,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s12
|
| ; CHECK-DAG: vmov.f32 s13
|
| ; CHECK-DAG: vmov.f32 s14
|
| -; CHECK: bl {{.*}} float15
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float15
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float16(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
|
| float 11.0, float 12.0, float 13.0, float 14.0,
|
| @@ -247,7 +277,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s13
|
| ; CHECK-DAG: vmov.f32 s14
|
| ; CHECK-DAG: vmov.f32 s15
|
| -; CHECK: bl {{.*}} float16
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float16
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float17(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
|
| float 11.0, float 12.0, float 13.0, float 14.0,
|
| @@ -269,7 +301,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s14
|
| ; CHECK-DAG: vmov.f32 s15
|
| ; CHECK-DAG: vstr s{{.*}}, [sp]
|
| -; CHECK: bl {{.*}} float17
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float17
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @float18(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
|
| float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
|
| float 11.0, float 12.0, float 13.0, float 14.0,
|
| @@ -292,7 +326,9 @@ define internal void @floatHarness() nounwind {
|
| ; CHECK-DAG: vmov.f32 s15
|
| ; CHECK-DAG: vstr s{{.*}}, [sp]
|
| ; CHECK-DAG: vstr s{{.*}}, [sp, #4]
|
| -; CHECK: bl {{.*}} float18
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float18
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| ret void
|
| }
|
|
|
| @@ -318,22 +354,30 @@ define internal void @doubleHarness() nounwind {
|
| ; CHECK-LABEL: doubleHarness
|
| call void @double1(double 1.0)
|
| ; CHECK-DAG: vmov.f64 d0
|
| -; CHECK: bl {{.*}} double1
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double1
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @double2(double 1.0, double 2.0)
|
| ; CHECK-DAG: vmov.f64 d0
|
| ; CHECK-DAG: vmov.f64 d1
|
| -; CHECK: bl {{.*}} double2
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double2
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @double3(double 1.0, double 2.0, double 3.0)
|
| ; CHECK-DAG: vmov.f64 d0
|
| ; CHECK-DAG: vmov.f64 d1
|
| ; CHECK-DAG: vmov.f64 d2
|
| -; CHECK: bl {{.*}} double3
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double3
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @double4(double 1.0, double 2.0, double 3.0, double 4.0)
|
| ; CHECK-DAG: vmov.f64 d0
|
| ; CHECK-DAG: vmov.f64 d1
|
| ; CHECK-DAG: vmov.f64 d2
|
| ; CHECK-DAG: vmov.f64 d3
|
| -; CHECK: bl {{.*}} double4
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double4
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @double5(double 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0)
|
| ; CHECK-DAG: vmov.f64 d0
|
| @@ -341,7 +385,9 @@ define internal void @doubleHarness() nounwind {
|
| ; CHECK-DAG: vmov.f64 d2
|
| ; CHECK-DAG: vmov.f64 d3
|
| ; CHECK-DAG: vmov.f64 d4
|
| -; CHECK: bl {{.*}} double5
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double5
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @double6(double 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0)
|
| ; CHECK-DAG: vmov.f64 d0
|
| @@ -350,7 +396,9 @@ define internal void @doubleHarness() nounwind {
|
| ; CHECK-DAG: vmov.f64 d3
|
| ; CHECK-DAG: vmov.f64 d4
|
| ; CHECK-DAG: vmov.f64 d5
|
| -; CHECK: bl {{.*}} double6
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double6
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @double7(double 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0, double 7.0)
|
| ; CHECK-DAG: vmov.f64 d0
|
| @@ -360,7 +408,9 @@ define internal void @doubleHarness() nounwind {
|
| ; CHECK-DAG: vmov.f64 d4
|
| ; CHECK-DAG: vmov.f64 d5
|
| ; CHECK-DAG: vmov.f64 d6
|
| -; CHECK: bl {{.*}} double7
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double7
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @double8(double 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0, double 7.0, double 8.0)
|
| ; CHECK-DAG: vmov.f64 d0
|
| @@ -371,7 +421,9 @@ define internal void @doubleHarness() nounwind {
|
| ; CHECK-DAG: vmov.f64 d5
|
| ; CHECK-DAG: vmov.f64 d6
|
| ; CHECK-DAG: vmov.f64 d7
|
| -; CHECK: bl {{.*}} double8
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double8
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @double9(double 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0, double 7.0, double 8.0,
|
| double 9.0)
|
| @@ -383,8 +435,10 @@ define internal void @doubleHarness() nounwind {
|
| ; CHECK-DAG: vmov.f64 d5
|
| ; CHECK-DAG: vmov.f64 d6
|
| ; CHECK-DAG: vmov.f64 d7
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double9
|
| +; CHECK-DAG: movt [[CALL]]
|
| ; CHECK-DAG: vstr d{{.*}}, [sp]
|
| -; CHECK: bl {{.*}} double9
|
| +; CHECK: blx [[CALL]]
|
| call void @double10(double 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0, double 7.0, double 8.0,
|
| double 9.0, double 10.0)
|
| @@ -398,7 +452,9 @@ define internal void @doubleHarness() nounwind {
|
| ; CHECK-DAG: vmov.f64 d7
|
| ; CHECK-DAG: vstr d{{.*}}, [sp]
|
| ; CHECK-DAG: vstr d{{.*}}, [sp, #8]
|
| -; CHECK: bl {{.*}} double10
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double10
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
|
|
| ret void
|
| }
|
| @@ -437,13 +493,17 @@ define internal void @packsFloats() nounwind {
|
| ; CHECK-DAG: vmov.f32 s0
|
| ; CHECK-DAG: vmov.f64 d1
|
| ; CHECK-DAG: vmov.f32 s1
|
| -; CHECK: bl {{.*}} testFDF
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDF
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @testFDDF(float 1.0, double 2.0, double 3.0, float 4.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| ; CHECK-DAG: vmov.f64 d1
|
| ; CHECK-DAG: vmov.f64 d2
|
| ; CHECK-DAG: vmov.f32 s1
|
| -; CHECK: bl {{.*}} testFDDF
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDF
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @testFDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
|
| float 5.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| @@ -451,7 +511,9 @@ define internal void @packsFloats() nounwind {
|
| ; CHECK-DAG: vmov.f64 d2
|
| ; CHECK-DAG: vmov.f64 d3
|
| ; CHECK-DAG: vmov.f32 s1
|
| -; CHECK: bl {{.*}} testFDDDF
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDF
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @testFDDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, float 6.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| @@ -460,7 +522,9 @@ define internal void @packsFloats() nounwind {
|
| ; CHECK-DAG: vmov.f64 d3
|
| ; CHECK-DAG: vmov.f64 d4
|
| ; CHECK-DAG: vmov.f32 s1
|
| -; CHECK: bl {{.*}} testFDDDDF
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDF
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @testFDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0, float 7.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| @@ -470,7 +534,9 @@ define internal void @packsFloats() nounwind {
|
| ; CHECK-DAG: vmov.f64 d4
|
| ; CHECK-DAG: vmov.f64 d5
|
| ; CHECK-DAG: vmov.f32 s1
|
| -; CHECK: bl {{.*}} testFDDDDDF
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDF
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @testFDDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0, double 7.0, float 8.0)
|
| ; CHECK-DAG: vmov.f32 s0
|
| @@ -481,7 +547,9 @@ define internal void @packsFloats() nounwind {
|
| ; CHECK-DAG: vmov.f64 d5
|
| ; CHECK-DAG: vmov.f64 d6
|
| ; CHECK-DAG: vmov.f32 s1
|
| -; CHECK: bl {{.*}} testFDDDDDDF
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDF
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @testFDDDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0, double 7.0, double 8.0,
|
| float 9.0)
|
| @@ -494,7 +562,9 @@ define internal void @packsFloats() nounwind {
|
| ; CHECK-DAG: vmov.f64 d6
|
| ; CHECK-DAG: vmov.f64 d7
|
| ; CHECK-DAG: vmov.f32 s1
|
| -; CHECK: bl {{.*}} testFDDDDDDDF
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDDF
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @testFDDDDDDDFD(float 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0, double 7.0, double 8.0,
|
| float 9.0, double 10.0)
|
| @@ -508,7 +578,9 @@ define internal void @packsFloats() nounwind {
|
| ; CHECK-DAG: vmov.f64 d7
|
| ; CHECK-DAG: vstr d{{.*}}, [sp]
|
| ; CHECK-DAG: vmov.f32 s1
|
| -; CHECK: bl {{.*}} testFDDDDDDDFD
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDDFD
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @testFDDDDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0, double 7.0, double 8.0,
|
| double 9.0, float 10.0)
|
| @@ -522,7 +594,9 @@ define internal void @packsFloats() nounwind {
|
| ; CHECK-DAG: vmov.f64 d7
|
| ; CHECK-DAG: vstr d{{.*}}, [sp]
|
| ; CHECK-DAG: vstr s{{.*}}, [sp, #8]
|
| -; CHECK: bl {{.*}} testFDDDDDDDDF
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDDDF
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @testFDDDDDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0, double 7.0, double 8.0,
|
| double 9.0, double 10.0, float 11.0)
|
| @@ -537,7 +611,9 @@ define internal void @packsFloats() nounwind {
|
| ; CHECK-DAG: vstr d{{.*}}, [sp]
|
| ; CHECK-DAG: vstr d{{.*}}, [sp, #8]
|
| ; CHECK-DAG: vstr s{{.*}}, [sp, #16]
|
| -; CHECK: bl {{.*}} testFDDDDDDDDDF
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDDDDF
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @testFDDDDDDDDFD(float 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0, double 7.0, double 8.0,
|
| double 9.0, float 10.0, double 11.0)
|
| @@ -552,7 +628,9 @@ define internal void @packsFloats() nounwind {
|
| ; CHECK-DAG: vstr d{{.*}}, [sp]
|
| ; CHECK-DAG: vstr s{{.*}}, [sp, #8]
|
| ; CHECK-DAG: vstr d{{.*}}, [sp, #16]
|
| -; CHECK: bl {{.*}} testFDDDDDDDDFD
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDDDFD
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
| call void @testFDDDDDDDDFDF(float 1.0, double 2.0, double 3.0, double 4.0,
|
| double 5.0, double 6.0, double 7.0, double 8.0,
|
| double 9.0, float 10.0, double 11.0, float 12.0)
|
| @@ -568,7 +646,9 @@ define internal void @packsFloats() nounwind {
|
| ; CHECK-DAG: vstr s{{.*}}, [sp, #8]
|
| ; CHECK-DAG: vstr d{{.*}}, [sp, #16]
|
| ; CHECK-DAG: vstr s{{.*}}, [sp, #24]
|
| -; CHECK: bl {{.*}} testFDDDDDDDDFD
|
| +; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDDDFD
|
| +; CHECK-DAG: movt [[CALL]]
|
| +; CHECK: blx [[CALL]]
|
|
|
| ret void
|
| }
|
|
|