CMSIS-DSP: Test framework improvement
Added gcc support for M55 FVP.
diff --git a/CMSIS/DSP/Platforms/FVP/ARMv81MML/Startup/GCC/startup_ARMv81MML.c b/CMSIS/DSP/Platforms/FVP/ARMv81MML/Startup/GCC/startup_ARMv81MML.c
index 0689aa0..ea3329f 100755
--- a/CMSIS/DSP/Platforms/FVP/ARMv81MML/Startup/GCC/startup_ARMv81MML.c
+++ b/CMSIS/DSP/Platforms/FVP/ARMv81MML/Startup/GCC/startup_ARMv81MML.c
@@ -29,6 +29,8 @@
   #error device not specified!
 #endif
 
+#include <stdio.h>
+
 /*----------------------------------------------------------------------------
   Exception / Interrupt Handler Function Prototype
  *----------------------------------------------------------------------------*/
@@ -120,6 +122,48 @@
 #pragma GCC diagnostic pop
 #endif
 
+#define SERIAL_BASE_ADDRESS (0xA8000000ul)
+
+#define SERIAL_DATA  *((volatile unsigned *) SERIAL_BASE_ADDRESS)
+
+
+
+int stdout_putchar(char txchar)
+{
+    SERIAL_DATA = txchar; 
+    return(txchar);                    
+}
+
+int stderr_putchar(char txchar)
+{
+    return stdout_putchar(txchar);
+}
+
+
+__attribute__((constructor(255)))
+void platform_init(void)
+{
+    printf("\n_[TEST START]____________________________________________________\n");
+}
+
+#define log_str(...)                                \
+    do {                                                \
+        const char *pchSrc = __VA_ARGS__;               \
+        uint_fast16_t hwSize = sizeof(__VA_ARGS__);     \
+        do {                                            \
+            stdout_putchar(*pchSrc++);                  \
+        } while(--hwSize);                              \
+    } while(0)
+
+void _exit(int return_code)
+{
+    (void)return_code;
+    log_str("\n");
+    log_str("_[TEST COMPLETE]_________________________________________________\n");
+    log_str("\n\n");
+    stdout_putchar(4);
+    while(1);
+}
 
 
 /*----------------------------------------------------------------------------
@@ -153,3 +197,16 @@
 }
 
 
+int _write(int   file,
+        char *ptr,
+        int   len)
+{
+  int i;
+  (void)file;
+  
+  for(i=0; i < len;i++)
+  {
+     stdout_putchar(*ptr++);
+  }
+  return len;
+}
diff --git a/CMSIS/DSP/README.md b/CMSIS/DSP/README.md
index d2a540f..584c3ac 100755
--- a/CMSIS/DSP/README.md
+++ b/CMSIS/DSP/README.md
@@ -141,4 +141,10 @@
 This last symbol is required because if no transform functions are included in the build, then by default all flags related to FFT tables are ignored.
 
 
+## Bit Reverse Tables CMSIS DSP
 
+It is a question coming often.
+
+It is now detailed [in this github issue](https://github.com/ARM-software/CMSIS_5/issues/858)
+
+Someone from the community has written a [Python script to help](https://gist.github.com/rosek86/d0d709852fddf36193071d7f61987bae)
\ No newline at end of file
diff --git a/CMSIS/DSP/Testing/CMakeLists.txt b/CMSIS/DSP/Testing/CMakeLists.txt
index 2585f72..02ec709 100644
--- a/CMSIS/DSP/Testing/CMakeLists.txt
+++ b/CMSIS/DSP/Testing/CMakeLists.txt
@@ -82,6 +82,7 @@
 
 option(FLOAT16TESTS "Float16 tests" OFF)
 option(MICROBENCH "Micro benchmarks" OFF)
+option(EIGEIN "Eigen benchmarks" OFF)
 
 project(Testing)
 
@@ -110,6 +111,8 @@
 
 if (BENCHMARK)
 
+set(STANDARDBENCH ON)
+
 if (MICROBENCH)
   set (MICROSRC
   Source/Benchmarks/MicroBenchmarksF32.cpp
@@ -117,6 +120,15 @@
   Source/Benchmarks/MicroBenchmarksQ15.cpp
   Source/Benchmarks/MicroBenchmarksQ7.cpp
   )
+  set(STANDARDBENCH OFF)
+
+endif()
+
+if (EIGEN)
+  set (EIGENSRC
+    ${EIGENBENCH}/VectorBenchmarksF32.cpp
+  )
+  set(STANDARDBENCH OFF)
 endif()
 
 set (NNSRC
@@ -124,49 +136,52 @@
   Source/Benchmarks/PoolingBench.cpp
   )
 
-set(TESTSRC 
-  Source/Benchmarks/BasicMathsBenchmarksF32.cpp
-  Source/Benchmarks/BasicMathsBenchmarksQ31.cpp
-  Source/Benchmarks/BasicMathsBenchmarksQ15.cpp
-  Source/Benchmarks/BasicMathsBenchmarksQ7.cpp
-  Source/Benchmarks/ComplexMathsBenchmarksF32.cpp
-  Source/Benchmarks/ComplexMathsBenchmarksQ31.cpp
-  Source/Benchmarks/ComplexMathsBenchmarksQ15.cpp
-  Source/Benchmarks/FIRF32.cpp
-  Source/Benchmarks/FIRQ31.cpp
-  Source/Benchmarks/FIRQ15.cpp
-  Source/Benchmarks/MISCF32.cpp
-  Source/Benchmarks/MISCQ31.cpp
-  Source/Benchmarks/MISCQ15.cpp
-  Source/Benchmarks/MISCQ7.cpp
-  Source/Benchmarks/DECIMF32.cpp
-  Source/Benchmarks/DECIMQ31.cpp
-  Source/Benchmarks/DECIMQ15.cpp
-  Source/Benchmarks/BIQUADF32.cpp
-  Source/Benchmarks/BIQUADF64.cpp
-  Source/Benchmarks/ControllerF32.cpp
-  Source/Benchmarks/ControllerQ31.cpp
-  Source/Benchmarks/ControllerQ15.cpp
-  Source/Benchmarks/FastMathF32.cpp
-  Source/Benchmarks/FastMathQ31.cpp
-  Source/Benchmarks/FastMathQ15.cpp
-  Source/Benchmarks/SupportF32.cpp
-  Source/Benchmarks/SupportBarF32.cpp
-  Source/Benchmarks/SupportQ31.cpp
-  Source/Benchmarks/SupportQ15.cpp
-  Source/Benchmarks/SupportQ7.cpp
-  Source/Benchmarks/UnaryF32.cpp
-  Source/Benchmarks/UnaryF64.cpp
-  Source/Benchmarks/UnaryQ31.cpp
-  Source/Benchmarks/UnaryQ15.cpp
-  Source/Benchmarks/BinaryF32.cpp
-  Source/Benchmarks/BinaryQ31.cpp
-  Source/Benchmarks/BinaryQ15.cpp
-  Source/Benchmarks/TransformF32.cpp
-  Source/Benchmarks/TransformQ31.cpp
-  Source/Benchmarks/TransformQ15.cpp
-  )
-target_include_directories(TestingLib PRIVATE Include/Benchmarks)
+ if (STANDARDBENCH)
+ set(TESTSRC 
+   Source/Benchmarks/BasicMathsBenchmarksF32.cpp
+   Source/Benchmarks/BasicMathsBenchmarksQ31.cpp
+   Source/Benchmarks/BasicMathsBenchmarksQ15.cpp
+   Source/Benchmarks/BasicMathsBenchmarksQ7.cpp
+   Source/Benchmarks/ComplexMathsBenchmarksF32.cpp
+   Source/Benchmarks/ComplexMathsBenchmarksQ31.cpp
+   Source/Benchmarks/ComplexMathsBenchmarksQ15.cpp
+   Source/Benchmarks/FIRF32.cpp
+   Source/Benchmarks/FIRQ31.cpp
+   Source/Benchmarks/FIRQ15.cpp
+   Source/Benchmarks/MISCF32.cpp
+   Source/Benchmarks/MISCQ31.cpp
+   Source/Benchmarks/MISCQ15.cpp
+   Source/Benchmarks/MISCQ7.cpp
+   Source/Benchmarks/DECIMF32.cpp
+   Source/Benchmarks/DECIMQ31.cpp
+   Source/Benchmarks/DECIMQ15.cpp
+   Source/Benchmarks/BIQUADF32.cpp
+   Source/Benchmarks/BIQUADF64.cpp
+   Source/Benchmarks/ControllerF32.cpp
+   Source/Benchmarks/ControllerQ31.cpp
+   Source/Benchmarks/ControllerQ15.cpp
+   Source/Benchmarks/FastMathF32.cpp
+   Source/Benchmarks/FastMathQ31.cpp
+   Source/Benchmarks/FastMathQ15.cpp
+   Source/Benchmarks/SupportF32.cpp
+   Source/Benchmarks/SupportBarF32.cpp
+   Source/Benchmarks/SupportQ31.cpp
+   Source/Benchmarks/SupportQ15.cpp
+   Source/Benchmarks/SupportQ7.cpp
+   Source/Benchmarks/UnaryF32.cpp
+   Source/Benchmarks/UnaryF64.cpp
+   Source/Benchmarks/UnaryQ31.cpp
+   Source/Benchmarks/UnaryQ15.cpp
+   Source/Benchmarks/BinaryF32.cpp
+   Source/Benchmarks/BinaryQ31.cpp
+   Source/Benchmarks/BinaryQ15.cpp
+   Source/Benchmarks/TransformF32.cpp
+   Source/Benchmarks/TransformQ31.cpp
+   Source/Benchmarks/TransformQ15.cpp
+   )
+ target_include_directories(TestingLib PRIVATE Include/Benchmarks)
+ endif()
+
 else()
 
 set(NNSRC
@@ -298,6 +313,13 @@
   if (MICROBENCH)
     target_sources(TestingLib PRIVATE ${MICROSRC})
   endif()
+
+  if (EIGEN)
+    target_sources(TestingLib PRIVATE ${EIGENSRC})
+    target_include_directories(TestingLib PUBLIC "${EIGENBENCH}/Include")
+    target_include_directories(TestingLib PUBLIC "${EIGENDIR}")
+  endif()
+
 endif()
   
 
diff --git a/CMSIS/DSP/Testing/PatternGeneration/Eigen.py b/CMSIS/DSP/Testing/PatternGeneration/Eigen.py
new file mode 100755
index 0000000..3facfca
--- /dev/null
+++ b/CMSIS/DSP/Testing/PatternGeneration/Eigen.py
@@ -0,0 +1,42 @@
+import os.path
+import numpy as np
+import itertools
+import Tools
+
+
+# Those patterns are used for tests and benchmarks.
+# For tests, there is the need to add tests for saturation
+
+
+def writeTests(config,format):
+    NBSAMPLES=256
+
+    data1=np.random.randn(NBSAMPLES)
+    data2=np.random.randn(NBSAMPLES)
+    data3=np.random.randn(1)
+    
+    data1 = Tools.normalize(data1)
+    data2 = Tools.normalize(data2)
+
+    # temp for debug of f16
+    config.writeInput(1, data1)
+    config.writeInput(2, data2)
+    
+    ref = data1 + data2
+    config.writeReference(1, ref)
+    
+    
+    #nb = Tools.loopnb(format,Tools.TAILONLY)
+    #nb = Tools.loopnb(format,Tools.BODYONLY)
+    #nb = Tools.loopnb(format,Tools.BODYANDTAIL)
+    
+def generatePatterns():
+    PATTERNDIR = os.path.join("Patterns","EigenBenchmarks","VectorBenchmarks","VectorBenchmarks")
+    PARAMDIR = os.path.join("Parameters","EigenBenchmarks","VectorBenchmarks","VectorBenchmarks")
+    
+    configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32")
+    
+    writeTests(configf32,0)
+    
+if __name__ == '__main__':
+  generatePatterns()
diff --git a/CMSIS/DSP/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Input1_f32.txt b/CMSIS/DSP/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Input1_f32.txt
new file mode 100755
index 0000000..6bbfda8
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Input1_f32.txt
@@ -0,0 +1,514 @@
+W
+256
+// 0.344260
+0x3eb042dd
+// 0.216977
+0x3e5e2f35
+// 0.701575
+0x3f339a67
+// -0.274448
+0xbe8c847d
+// -0.153288
+0xbe1cf791
+// 0.312017
+0x3e9fc0bb
+// 0.547499
+0x3f0c28ea
+// 0.231762
+0x3e6d5320
+// -0.070936
+0xbd9146f2
+// -0.034421
+0xbd0cfcc2
+// -0.060913
+0xbd797f89
+// -0.175888
+0xbe341c08
+// -0.547832
+0xbf0c3ebb
+// -0.500285
+0xbf0012ae
+// 0.145488
+0x3e14fab8
+// -0.351225
+0xbeb3d3c1
+// 0.653280
+0x3f273d62
+// 0.284676
+0x3e91c101
+// 0.236506
+0x3e722ebe
+// -0.464373
+0xbeedc25d
+// -0.218742
+0xbe5ffddc
+// 0.083309
+0x3daa9db3
+// -0.054270
+0xbd5e4aa7
+// 0.045006
+0x3d385837
+// 0.184335
+0x3e3cc262
+// -0.335996
+0xbeac07b2
+// 0.160630
+0x3e247c3e
+// -0.007457
+0xbbf457d5
+// -0.289020
+0xbe93fa76
+// 0.247130
+0x3e7d0fb2
+// -0.145158
+0xbe14a449
+// -0.078841
+0xbda17793
+// -0.220477
+0xbe61c4b5
+// 0.550158
+0x3f0cd72d
+// 0.346652
+0x3eb17c63
+// 0.314947
+0x3ea140c9
+// 0.326173
+0x3ea70019
+// -0.330829
+0xbea96269
+// -0.027217
+0xbcdef551
+// 0.132792
+0x3e07fab9
+// -0.092076
+0xbdbc923b
+// 0.287784
+0x3e935872
+// 0.107870
+0x3ddceabc
+// -0.128443
+0xbe0386a6
+// -0.108622
+0xbdde756c
+// 0.242993
+0x3e78d318
+// -0.014099
+0xbc66fe88
+// 0.145819
+0x3e1551a5
+// 0.239599
+0x3e755980
+// -0.502160
+0xbf008d8d
+// 0.242730
+0x3e788e29
+// -0.346946
+0xbeb1a2db
+// 0.212811
+0x3e59eb00
+// -0.396812
+0xbecb2af1
+// 0.180991
+0x3e3955b2
+// -0.096707
+0xbdc60e53
+// 0.234095
+0x3e6fb69e
+// 0.057367
+0x3d6af937
+// 0.289552
+0x3e944031
+// 0.077712
+0x3d9f273f
+// 0.002018
+0x3b043e60
+// 0.245311
+0x3e7b32dd
+// -0.062176
+0xbd7eabbf
+// -0.219864
+0xbe6123f3
+// 0.424673
+0x3ed96ebc
+// -0.054423
+0xbd5eea32
+// -0.225940
+0xbe675cde
+// -0.226669
+0xbe681bcc
+// 0.620484
+0x3f1ed808
+// 0.102465
+0x3dd1d8f5
+// -0.203664
+0xbe508d5b
+// -0.230087
+0xbe6b9bd9
+// 0.419972
+0x3ed7069d
+// 0.312979
+0x3ea03ed4
+// 0.452894
+0x3ee7e1bc
+// -0.146499
+0xbe1603bc
+// 0.408251
+0x3ed1064b
+// -0.070785
+0xbd90f7ea
+// 0.251134
+0x3e8094b3
+// -0.027624
+0xbce24b47
+// 0.537568
+0x3f099e09
+// -0.303778
+0xbe9b88c3
+// -0.605831
+0xbf1b17bc
+// -0.097511
+0xbdc7b3ba
+// 0.088898
+0x3db61064
+// -0.045774
+0xbd3b7d71
+// 0.169351
+0x3e2d6a3f
+// -0.072080
+0xbd939ec4
+// -0.137132
+0xbe0c6c5e
+// -0.365910
+0xbebb589d
+// 0.301191
+0x3e9a35bc
+// -0.315095
+0xbea15413
+// 0.142340
+0x3e11c198
+// 0.204251
+0x3e51273f
+// 0.309885
+0x3e9ea945
+// 0.177406
+0x3e35a9f7
+// -0.243355
+0xbe793214
+// -0.219630
+0xbe60e69b
+// -0.144933
+0xbe14693a
+// -0.135644
+0xbe0ae650
+// -0.055451
+0xbd6320a7
+// -0.163408
+0xbe275463
+// 0.620769
+0x3f1eeabe
+// 0.078984
+0x3da1c21b
+// -0.155300
+0xbe1f06f7
+// 0.335820
+0x3eabf08c
+// -0.189160
+0xbe41b318
+// 0.415815
+0x3ed4e5a4
+// -0.366075
+0xbebb6e27
+// 0.769914
+0x3f451917
+// -0.390905
+0xbec824aa
+// -0.021731
+0xbcb204e0
+// -0.096704
+0xbdc60cc2
+// -0.303366
+0xbe9b52c2
+// -0.434682
+0xbede8eaf
+// -0.262158
+0xbe863994
+// -0.109278
+0xbddfcd29
+// -0.172143
+0xbe30465d
+// 0.183076
+0x3e3b7861
+// 0.446784
+0x3ee4c0d9
+// -0.390311
+0xbec7d6cc
+// -0.008610
+0xbc0d0f6c
+// 0.358829
+0x3eb7b865
+// -0.150437
+0xbe1a0c19
+// 0.368183
+0x3ebc826d
+// 0.058833
+0x3d70fb1e
+// 0.367402
+0x3ebc1c1b
+// -0.257558
+0xbe83deb0
+// -0.300412
+0xbe99cf8f
+// 0.140626
+0x3e100026
+// 0.406396
+0x3ed0131a
+// -0.076645
+0xbd9cf7e4
+// -0.362168
+0xbeb96e18
+// 0.073985
+0x3d978584
+// 0.463253
+0x3eed2f75
+// 0.588447
+0x3f16a47c
+// -0.002093
+0xbb092274
+// -0.087263
+0xbdb2b6d9
+// 0.042088
+0x3d2c63fb
+// -0.220115
+0xbe6165cf
+// -0.832860
+0xbf55364c
+// -0.439227
+0xbee0e265
+// 0.452512
+0x3ee7af9c
+// -0.001284
+0xbaa855e0
+// 0.001153
+0x3a971527
+// -0.213468
+0xbe5a975f
+// 0.033903
+0x3d0addbc
+// 0.036001
+0x3d137626
+// 0.141799
+0x3e1133de
+// 0.139228
+0x3e0e91bd
+// 0.121263
+0x3df8587b
+// -0.086090
+0xbdb0500a
+// 0.111177
+0x3de3b0e9
+// -0.398697
+0xbecc2201
+// -0.846493
+0xbf58b3c0
+// -0.394283
+0xbec9df82
+// 0.254980
+0x3e828cb7
+// 0.332764
+0x3eaa6015
+// 0.095733
+0x3dc40f9c
+// 0.354296
+0x3eb56640
+// 0.232592
+0x3e6e2c85
+// 0.020795
+0x3caa5b34
+// 0.005664
+0x3bb99509
+// 0.015387
+0x3c7c18df
+// -0.140506
+0xbe0fe0ad
+// -0.085201
+0xbdae7dce
+// 0.730542
+0x3f3b04ce
+// -0.475549
+0xbef37b28
+// 0.405000
+0x3ecf5c38
+// 0.477968
+0x3ef4b833
+// 0.071743
+0x3d92ee3a
+// 0.190427
+0x3e42ff3a
+// -0.199604
+0xbe4c64fa
+// -0.155970
+0xbe1fb69c
+// -0.526183
+0xbf06b3f2
+// -0.221521
+0xbe62d65e
+// -0.234103
+0xbe6fb8c5
+// -0.283123
+0xbe90f57a
+// -0.210075
+0xbe571df6
+// -0.261336
+0xbe85cdd6
+// 0.248029
+0x3e7dfb6d
+// 0.599670
+0x3f1983f4
+// 0.220368
+0x3e61a82c
+// 0.160053
+0x3e23e4eb
+// 0.146403
+0x3e15ea92
+// -0.306386
+0xbe9cde9e
+// 0.117957
+0x3df19337
+// -0.225993
+0xbe676aad
+// -0.242947
+0xbe78c71b
+// 0.235351
+0x3e70ffdc
+// 0.411999
+0x3ed2f17b
+// -0.142671
+0xbe121855
+// -0.580421
+0xbf14967c
+// 0.141241
+0x3e10a171
+// -0.338249
+0xbead2f03
+// -0.394875
+0xbeca2d05
+// -0.095196
+0xbdc2f632
+// -0.026498
+0xbcd911c7
+// 0.321753
+0x3ea4bccd
+// -0.282863
+0xbe90d364
+// 0.060947
+0x3d79a3a7
+// 0.337503
+0x3eaccd21
+// -0.469463
+0xbef05d6e
+// -0.315035
+0xbea14c39
+// 1.000000
+0x3f800000
+// -0.337499
+0xbeacccbb
+// -0.172702
+0xbe30d8b2
+// -0.442753
+0xbee2b093
+// -0.102026
+0xbdd0f324
+// -0.239829
+0xbe75959d
+// -0.268321
+0xbe896153
+// 0.302641
+0x3e9af3ca
+// -0.255109
+0xbe829d95
+// 0.069925
+0x3d8f34aa
+// 0.067365
+0x3d89f6b8
+// 0.233870
+0x3e6f7b8b
+// -0.073808
+0xbd9728c6
+// 0.641234
+0x3f2427e4
+// 0.391305
+0x3ec85913
+// -0.079334
+0xbda279ff
+// -0.015431
+0xbc7cd24a
+// 0.215485
+0x3e5ca82f
+// -0.291121
+0xbe950dd8
+// 0.966270
+0x3f775d7c
+// -0.189661
+0xbe423693
+// -0.469764
+0xbef084f1
+// -0.137391
+0xbe0cb04b
+// 0.111061
+0x3de373e1
+// -0.066381
+0xbd87f286
+// 0.127807
+0x3e02dfe7
+// -0.185434
+0xbe3de26f
+// 0.075527
+0x3d9aadaf
+// 0.015394
+0x3c7c38de
+// 0.517599
+0x3f048161
+// 0.649067
+0x3f26293d
+// 0.103351
+0x3dd3a9f3
+// -0.280768
+0xbe8fc0cd
+// 0.602634
+0x3f1a4637
+// -0.543623
+0xbf0b2ae5
+// -0.248191
+0xbe7e25ca
+// 0.200799
+0x3e4d9e33
+// -0.383915
+0xbec4907b
+// 0.091922
+0x3dbc4196
+// -0.157264
+0xbe2109c9
+// 0.079701
+0x3da33a39
+// 0.352660
+0x3eb48fe3
+// 0.424658
+0x3ed96cb6
+// 0.227121
+0x3e689258
+// 0.243494
+0x3e79569c
+// -0.111648
+0xbde4a7a0
+// 0.010129
+0x3c25f526
+// 0.006690
+0x3bdb3638
+// -0.071187
+0xbd91ca79
+// 0.561726
+0x3f0fcd3f
+// -0.272001
+0xbe8b43b0
+// -0.370929
+0xbebdea71
diff --git a/CMSIS/DSP/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Input2_f32.txt b/CMSIS/DSP/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Input2_f32.txt
new file mode 100755
index 0000000..99ec97b
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Input2_f32.txt
@@ -0,0 +1,514 @@
+W
+256
+// -0.608883
+0xbf1bdfca
+// -0.182389
+0xbe3ac427
+// -0.526289
+0xbf06bae3
+// -0.357412
+0xbeb6fec3
+// -0.421216
+0xbed7a9a0
+// 0.035615
+0x3d11e18c
+// -0.144657
+0xbe1420ff
+// -0.254592
+0xbe8259d1
+// -0.079110
+0xbda204a8
+// -0.370365
+0xbebda074
+// 0.081252
+0x3da66794
+// -0.065525
+0xbd8631cc
+// -0.254482
+0xbe824b7d
+// -0.069698
+0xbd8ebe10
+// 0.474519
+0x3ef2f425
+// 0.063953
+0x3d82f996
+// 0.282007
+0x3e906343
+// 0.438598
+0x3ee08fed
+// -0.289484
+0xbe943743
+// -0.016971
+0xbc8b0633
+// -0.668683
+0xbf2b2ecc
+// 0.163997
+0x3e27eed3
+// 0.323271
+0x3ea583ca
+// -0.121527
+0xbdf8e32f
+// -0.402560
+0xbece1c5e
+// -0.037856
+0xbd1b0f08
+// 0.113986
+0x3de97166
+// -0.069150
+0xbd8d9eae
+// -0.280926
+0xbe8fd598
+// 0.220136
+0x3e616b63
+// -0.827154
+0xbf53c05f
+// 0.521275
+0x3f057243
+// -1.000000
+0xbf800000
+// -0.299488
+0xbe995682
+// 0.503483
+0x3f00e43c
+// 0.538171
+0x3f09c597
+// -0.069818
+0xbd8efcf2
+// 0.345872
+0x3eb1161b
+// -0.041450
+0xbd29c71f
+// -0.410932
+0xbed265b3
+// -0.743161
+0xbf3e3fd4
+// 0.941343
+0x3f70fbdf
+// -0.076698
+0xbd9d13c2
+// 0.356589
+0x3eb692e1
+// -0.040338
+0xbd2538f2
+// 0.233907
+0x3e6f8532
+// 0.428952
+0x3edb9f8e
+// 0.043308
+0x3d316376
+// 0.390221
+0x3ec7cafb
+// 0.438043
+0x3ee04721
+// -0.158814
+0xbe22a038
+// 0.051356
+0x3d525ad1
+// 0.329910
+0x3ea8e9fd
+// -0.181693
+0xbe3a0db8
+// 0.777608
+0x3f471155
+// -0.510156
+0xbf029990
+// 0.357730
+0x3eb7286a
+// 0.052386
+0x3d569276
+// 0.156348
+0x3e201997
+// 0.072619
+0x3d94b937
+// 0.216307
+0x3e5d7f8b
+// -0.680470
+0xbf2e3350
+// -0.013208
+0xbc58684f
+// 0.658505
+0x3f2893c9
+// 0.037227
+0x3d187b44
+// -0.083704
+0xbdab6cd9
+// 0.065769
+0x3d86b1c0
+// 0.216670
+0x3e5dded2
+// 0.276278
+0x3e8d7446
+// -0.047467
+0xbd426ce3
+// -0.168162
+0xbe2c32a4
+// 0.033429
+0x3d08ecae
+// 0.346382
+0x3eb15909
+// -0.078748
+0xbda14679
+// -0.404817
+0xbecf441f
+// -0.090564
+0xbdb97992
+// -0.044906
+0xbd37eedf
+// 0.498744
+0x3eff5b56
+// 0.041723
+0x3d2ae5dd
+// -0.850726
+0xbf59c935
+// 0.170360
+0x3e2e72cc
+// 0.375967
+0x3ec07ebb
+// 0.114046
+0x3de990f9
+// 0.416028
+0x3ed5018f
+// 0.214924
+0x3e5c150e
+// 0.219644
+0x3e60ea4a
+// 0.116906
+0x3def6c3f
+// -0.207159
+0xbe54216c
+// -0.075714
+0xbd9b0ff8
+// -0.146192
+0xbe15b37c
+// 0.074059
+0x3d97ac11
+// -0.301796
+0xbe9a84fd
+// -0.489313
+0xbefa872c
+// 0.002323
+0x3b1840e6
+// -0.520492
+0xbf053efb
+// 0.020082
+0x3ca482d1
+// -0.163455
+0xbe2760c7
+// 0.294314
+0x3e96b046
+// 0.256324
+0x3e833ced
+// -0.452644
+0xbee7c0f4
+// -0.775722
+0xbf4695b4
+// 0.078839
+0x3da17675
+// -0.369170
+0xbebd03e0
+// 0.226404
+0x3e67d655
+// 0.050769
+0x3d4ff2fd
+// -0.204872
+0xbe51ca01
+// -0.063212
+0xbd817531
+// 0.746003
+0x3f3efa0d
+// 0.080537
+0x3da4f0a4
+// -0.885687
+0xbf62bc64
+// 0.277304
+0x3e8dfad7
+// 0.135888
+0x3e0b262a
+// 0.909442
+0x3f68d139
+// -0.039330
+0xbd21184e
+// -0.287226
+0xbe930f44
+// -0.341751
+0xbeaef9f0
+// 0.092260
+0x3dbcf30c
+// 0.034191
+0x3d0c0bfc
+// 0.056666
+0x3d681b0e
+// -0.605077
+0xbf1ae654
+// -0.232184
+0xbe6dc1c3
+// -0.351488
+0xbeb3f64b
+// -0.189694
+0xbe423f05
+// -0.325801
+0xbea6cf56
+// 0.151875
+0x3e1b8510
+// -0.209927
+0xbe56f700
+// -0.129947
+0xbe0510f0
+// 0.004767
+0x3b9c3862
+// 0.112359
+0x3de61cb8
+// -0.647147
+0xbf25ab6c
+// -0.061236
+0xbd7ad30b
+// -0.163876
+0xbe27cf03
+// 0.208468
+0x3e5578a0
+// 0.359782
+0x3eb8355c
+// -0.300022
+0xbe999c71
+// -0.845498
+0xbf587297
+// -0.057182
+0xbd6a37fa
+// 0.227689
+0x3e692742
+// 0.344527
+0x3eb065d1
+// 0.118523
+0x3df2bbfd
+// -0.330549
+0xbea93db9
+// 0.281055
+0x3e8fe671
+// -0.250464
+0xbe803cd7
+// -0.170157
+0xbe2e3dba
+// -0.408447
+0xbed11ff4
+// -0.007132
+0xbbe9b301
+// 0.048704
+0x3d477d8f
+// -0.082620
+0xbda934bd
+// -0.173176
+0xbe31550c
+// -0.206236
+0xbe532f9d
+// -0.220250
+0xbe618951
+// -0.254806
+0xbe8275e5
+// 0.350425
+0x3eb36ade
+// -0.744001
+0xbf3e76d9
+// 0.182456
+0x3e3ad5a9
+// -0.744736
+0xbf3ea704
+// -0.160505
+0xbe245b85
+// 0.425375
+0x3ed9cabb
+// -0.243841
+0xbe79b18f
+// 0.321420
+0x3ea49131
+// -0.394316
+0xbec9e3c0
+// 0.284938
+0x3e91e35e
+// 0.066512
+0x3d88373b
+// -0.079249
+0xbda24d6c
+// -0.253727
+0xbe81e876
+// 0.014094
+0x3c66eb01
+// -0.145098
+0xbe149478
+// -0.050092
+0xbd4d2d51
+// -0.164295
+0xbe283cf6
+// 0.291247
+0x3e951e56
+// 0.123316
+0x3dfc8cfc
+// -0.476307
+0xbef3de7f
+// -0.034201
+0xbd0c15f5
+// -0.315061
+0xbea14fb1
+// -0.817911
+0xbf51629b
+// 0.045772
+0x3d3b7bbb
+// 0.104146
+0x3dd54abc
+// 0.532568
+0x3f085665
+// 0.127817
+0x3e02e286
+// -0.214581
+0xbe5bbb34
+// -0.241791
+0xbe779815
+// 0.042322
+0x3d2d5a59
+// 0.562544
+0x3f1002e3
+// -0.084882
+0xbdadd683
+// -0.330405
+0xbea92ad5
+// -0.119527
+0xbdf4cac4
+// 0.536931
+0x3f09744e
+// 0.229798
+0x3e6b502f
+// 0.440562
+0x3ee19150
+// -0.176197
+0xbe346d02
+// -0.147654
+0xbe173286
+// -0.274271
+0xbe8c6d30
+// -0.052682
+0xbd57c8d9
+// -0.147147
+0xbe16ada8
+// 0.178817
+0x3e371be1
+// 0.131281
+0x3e066e92
+// 0.243007
+0x3e78d6e1
+// -0.075271
+0xbd9a27d9
+// 0.332280
+0x3eaa20a4
+// -0.103490
+0xbdd3f2ca
+// 0.176557
+0x3e34cb72
+// 0.058402
+0x3d6f3743
+// 0.138308
+0x3e0da07b
+// -0.273335
+0xbe8bf287
+// 0.092822
+0x3dbe1976
+// 0.357487
+0x3eb70896
+// -0.207439
+0xbe546ae1
+// 0.436838
+0x3edfa937
+// 0.559709
+0x3f0f4917
+// -0.119478
+0xbdf4b0f7
+// 0.906080
+0x3f67f4e1
+// -0.099323
+0xbdcb69da
+// 0.280256
+0x3e8f7dbb
+// -0.139291
+0xbe0ea243
+// -0.441371
+0xbee1fb64
+// 0.091688
+0x3dbbc6f0
+// 0.143020
+0x3e1273f4
+// -0.394631
+0xbeca0d0d
+// 0.509247
+0x3f025e01
+// -0.226764
+0xbe6834e2
+// -0.089462
+0xbdb737a0
+// 0.456388
+0x3ee9aba2
+// 0.082301
+0x3da88d6e
+// -0.350518
+0xbeb37720
+// -0.501817
+0xbf007715
+// -0.558678
+0xbf0f0588
+// 0.131853
+0x3e070459
+// -0.480083
+0xbef5cd62
+// -0.162002
+0xbe25e3c0
+// -0.299893
+0xbe998b9e
+// -0.145527
+0xbe1504e9
+// 0.058109
+0x3d6e0350
+// 0.351770
+0x3eb41b26
+// 0.136681
+0x3e0bf615
+// -0.024059
+0xbcc517db
+// 0.396028
+0x3ecac421
+// 0.311976
+0x3e9fbb45
+// 0.142975
+0x3e12680d
+// 0.004849
+0x3b9ee433
+// 0.164602
+0x3e288d4f
+// 0.489011
+0x3efa5f9d
+// 0.319806
+0x3ea3bd8e
+// -0.243944
+0xbe79cc72
+// -0.354768
+0xbeb5a42c
+// -0.660901
+0xbf2930cc
+// -0.697272
+0xbf32806a
+// 0.185101
+0x3e3d8b01
+// -0.586564
+0xbf162911
+// 0.349033
+0x3eb2b46c
+// 0.155366
+0x3e1f1844
+// 0.581884
+0x3f14f654
+// -0.633862
+0xbf2244c6
+// 0.332930
+0x3eaa75c7
+// -0.177721
+0xbe35fc62
+// -0.236936
+0xbe729f49
+// -0.120847
+0xbdf77ea9
diff --git a/CMSIS/DSP/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Reference1_f32.txt b/CMSIS/DSP/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Reference1_f32.txt
new file mode 100755
index 0000000..852d473
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Reference1_f32.txt
@@ -0,0 +1,514 @@
+W
+256
+// -0.264623
+0xbe877cb7
+// 0.034588
+0x3d0dac39
+// 0.175286
+0x3e337e12
+// -0.631861
+0xbf21c1a0
+// -0.574504
+0xbf1312b5
+// 0.347633
+0x3eb1fced
+// 0.402842
+0x3ece4154
+// -0.022829
+0xbcbb0414
+// -0.150047
+0xbe19a5cd
+// -0.404786
+0xbecf400c
+// 0.020340
+0x3ca69f40
+// -0.241413
+0xbe7734ee
+// -0.802314
+0xbf4d647a
+// -0.569983
+0xbf11ea70
+// 0.620007
+0x3f1eb8c0
+// -0.287272
+0xbe93155c
+// 0.935288
+0x3f6f6f03
+// 0.723274
+0x3f392877
+// -0.052978
+0xbd58ff1f
+// -0.481344
+0xbef672c0
+// -0.887425
+0xbf632e43
+// 0.247306
+0x3e7d3dad
+// 0.269001
+0x3e89ba75
+// -0.076521
+0xbd9cb714
+// -0.218225
+0xbe5f765a
+// -0.373852
+0xbebf6993
+// 0.274616
+0x3e8c9a79
+// -0.076607
+0xbd9ce42b
+// -0.569947
+0xbf11e807
+// 0.467266
+0x3eef3d8b
+// -0.972312
+0xbf78e971
+// 0.442433
+0x3ee286a0
+// -1.220477
+0xbf9c3897
+// 0.250670
+0x3e8057d8
+// 0.850135
+0x3f59a26d
+// 0.853119
+0x3f5a65fc
+// 0.256354
+0x3e8340dd
+// 0.015043
+0x3c767621
+// -0.068666
+0xbd8ca0e4
+// -0.278140
+0xbe8e6857
+// -0.835237
+0xbf55d21b
+// 1.229127
+0x3f9d540c
+// 0.031172
+0x3cff5be9
+// 0.228146
+0x3e699f1c
+// -0.148960
+0xbe1888f3
+// 0.476899
+0x3ef42c25
+// 0.414853
+0x3ed4679a
+// 0.189127
+0x3e41aa83
+// 0.629820
+0x3f213bde
+// -0.064117
+0xbd834fe2
+// 0.083915
+0x3dabdbe1
+// -0.295589
+0xbe975781
+// 0.542721
+0x3f0aefbe
+// -0.578505
+0xbf1418e6
+// 0.958599
+0x3f7566c1
+// -0.606863
+0xbf1b5b5a
+// 0.591825
+0x3f1781dc
+// 0.109752
+0x3de0c5d7
+// 0.445900
+0x3ee44cfd
+// 0.150330
+0x3e19f03b
+// 0.218325
+0x3e5f9085
+// -0.435159
+0xbedecd32
+// -0.075384
+0xbd9a62e9
+// 0.438641
+0x3ee0959a
+// 0.461900
+0x3eec7e25
+// -0.138126
+0xbe0d70f9
+// -0.160171
+0xbe2403fe
+// -0.009998
+0xbc23cf9c
+// 0.896762
+0x3f65922a
+// 0.054997
+0x3d614507
+// -0.371826
+0xbebe5fff
+// -0.196658
+0xbe4960ad
+// 0.766355
+0x3f442fd3
+// 0.234232
+0x3e6fda6c
+// 0.048077
+0x3d44ece4
+// -0.237063
+0xbe72c085
+// 0.363346
+0x3eba086f
+// 0.427958
+0x3edb1d5c
+// 0.292858
+0x3e95f16f
+// -0.878350
+0xbf60db8f
+// 0.707927
+0x3f353abc
+// 0.072189
+0x3d93d7e0
+// -0.491785
+0xbefbcb3b
+// 0.318517
+0x3ea314a0
+// 0.303823
+0x3e9b8ea0
+// 0.173870
+0x3e320aee
+// 0.286256
+0x3e92902f
+// -0.279239
+0xbe8ef867
+// -0.212846
+0xbe59f45a
+// -0.512103
+0xbf03192e
+// 0.375250
+0x3ec020c0
+// -0.616890
+0xbf1dec88
+// -0.346972
+0xbeb1a660
+// 0.206574
+0x3e538843
+// -0.210607
+0xbe57a960
+// 0.197488
+0x3e4a3a51
+// -0.406810
+0xbed0496d
+// 0.074684
+0x3d98f3e2
+// 0.111392
+0x3de42142
+// -0.588288
+0xbf169a0e
+// -0.831173
+0xbf54c7be
+// -0.084569
+0xbdad3250
+// 0.251599
+0x3e80d19c
+// 0.305387
+0x3e9c5bb1
+// -0.104531
+0xbdd61470
+// 0.130947
+0x3e061716
+// -0.252372
+0xbe8136d8
+// 1.161818
+0x3f94b670
+// -0.285538
+0xbe9231fe
+// -0.115773
+0xbded1a68
+// -0.113600
+0xbde8a74d
+// 0.114157
+0x3de9cb1b
+// 0.812738
+0x3f500fa0
+// -0.342696
+0xbeaf75cc
+// -0.721908
+0xbf38cef9
+// -0.603909
+0xbf1a99c2
+// -0.017018
+0xbc8b6877
+// -0.137952
+0xbe0d435e
+// 0.239743
+0x3e757f24
+// -0.158293
+0xbe2217a0
+// -0.622495
+0xbf1f5bd7
+// -0.360098
+0xbeb85ec7
+// 0.169135
+0x3e2d31c5
+// -0.476237
+0xbef3d562
+// 0.520057
+0x3f05227b
+// -0.151093
+0xbe1ab838
+// 0.237455
+0x3e732746
+// -0.252791
+0xbe816dce
+// -0.188052
+0xbe4090c3
+// -0.506521
+0xbf01ab62
+// 0.345159
+0x3eb0b8b8
+// -0.240520
+0xbe764af5
+// -0.153700
+0xbe1d6390
+// 0.433767
+0x3ede16bd
+// 0.163231
+0x3e272607
+// -0.257051
+0xbe839c36
+// -0.059275
+0xbd72ca22
+// 0.140426
+0x3e0fcbd5
+// 0.386614
+0x3ec5f250
+// -0.101592
+0xbdd00fa2
+// -1.163409
+0xbf94ea94
+// -0.158172
+0xbe21f7e8
+// 0.202047
+0x3e4ee589
+// -0.171442
+0xbe2f8e66
+// -0.407294
+0xbed088df
+// -0.220600
+0xbe61e4f7
+// 0.082607
+0x3da92da6
+// -0.046619
+0xbd3ef353
+// -0.031377
+0xbd0084ba
+// -0.067008
+0xbd893bc0
+// -0.098988
+0xbdcaba28
+// -0.340896
+0xbeae89e7
+// 0.461602
+0x3eec5718
+// -1.142698
+0xbf9243ed
+// -0.664037
+0xbf29fe56
+// -1.139019
+0xbf91cb62
+// 0.094474
+0x3dc17bd2
+// 0.758139
+0x3f421568
+// -0.148109
+0xbe17a9c1
+// 0.675716
+0x3f2cfbb8
+// -0.161724
+0xbe259afc
+// 0.305733
+0x3e9c8911
+// 0.072175
+0x3d93d08c
+// -0.063862
+0xbd82ca50
+// -0.394232
+0xbec9d8cc
+// -0.071107
+0xbd91a06e
+// 0.585444
+0x3f15dfb0
+// -0.525641
+0xbf069069
+// 0.240705
+0x3e767b7b
+// 0.769215
+0x3f44eb45
+// 0.195059
+0x3e47bd9b
+// -0.285880
+0xbe925ee2
+// -0.233805
+0xbe6f6a78
+// -0.471031
+0xbef12b00
+// -1.344094
+0xbfac0b46
+// -0.175749
+0xbe33f76f
+// -0.129957
+0xbe051367
+// 0.249445
+0x3e7f6e9e
+// -0.082258
+0xbda876e1
+// -0.475917
+0xbef3ab70
+// 0.006238
+0x3bcc6af3
+// 0.641992
+0x3f24599a
+// 0.782912
+0x3f486cee
+// 0.075171
+0x3d99f353
+// -0.184002
+0xbe3c6b19
+// -0.425913
+0xbeda114f
+// 0.654888
+0x3f27a6b5
+// 0.003805
+0x3b796072
+// 0.197615
+0x3e4a5b86
+// 0.059154
+0x3d724b68
+// 0.264345
+0x3e875838
+// -0.416941
+0xbed5795a
+// -0.633103
+0xbf22130a
+// -0.005906
+0xbbc186e8
+// -0.159432
+0xbe234225
+// -0.263594
+0xbe86f5bc
+// 0.147811
+0x3e175bc8
+// -0.101769
+0xbdd06c4b
+// 0.654033
+0x3f276eb9
+// -0.386353
+0xbec5d017
+// 0.237504
+0x3e73345b
+// 0.395905
+0x3ecab409
+// -0.331155
+0xbea98d30
+// -0.588369
+0xbf169f60
+// 1.092822
+0x3f8be197
+// 0.019988
+0x3ca3bdaf
+// -0.380141
+0xbec2a1ca
+// -0.005916
+0xbbc1d6e0
+// 0.457683
+0x3eea5565
+// -0.359307
+0xbeb7f70c
+// 0.637760
+0x3f234438
+// 0.203318
+0x3e5032a6
+// 0.025148
+0x3cce0261
+// -0.069366
+0xbd8e0fdb
+// -0.374006
+0xbebf7db6
+// 0.325558
+0x3ea6af82
+// 0.069212
+0x3d8dbf23
+// 0.246603
+0x3e7c8575
+// 0.900551
+0x3f668a8b
+// -0.306098
+0xbe9cb8f1
+// -0.104893
+0xbdd6d1e9
+// 0.671873
+0x3f2bffdd
+// -0.208820
+0xbe55d4f8
+// 0.615752
+0x3f1da1ec
+// -0.691478
+0xbf3104ba
+// -1.028442
+0xbf83a400
+// -0.005539
+0xbbb57e39
+// -0.369022
+0xbebcf069
+// -0.228382
+0xbe69dd03
+// -0.172086
+0xbe303755
+// -0.330961
+0xbea973ac
+// 0.133635
+0x3e08d7ab
+// 0.367164
+0x3ebbfced
+// 0.654280
+0x3f277ee6
+// 0.625008
+0x3f20007e
+// 0.499379
+0x3effae9e
+// 0.031208
+0x3cffa780
+// 0.745609
+0x3f3ee03a
+// -0.538774
+0xbf09ed1c
+// -0.083589
+0xbdab30f6
+// 0.689810
+0x3f30975b
+// -0.064109
+0xbd834bb8
+// -0.152022
+0xbe1baba7
+// -0.512032
+0xbf031488
+// -0.581200
+0xbf14c985
+// -0.344612
+0xbeb070f1
+// 0.609758
+0x3f1c191b
+// -0.359443
+0xbeb808f6
+// 0.592527
+0x3f17afdd
+// 0.043718
+0x3d3311ce
+// 0.592013
+0x3f178e29
+// -0.627172
+0xbf208e59
+// 0.261743
+0x3e860329
+// 0.384005
+0x3ec49c4d
+// -0.508937
+0xbf0249aa
+// -0.491776
+0xbefbca1b
diff --git a/CMSIS/DSP/Testing/testmain.cpp b/CMSIS/DSP/Testing/testmain.cpp
index e7e819d..fdbc423 100644
--- a/CMSIS/DSP/Testing/testmain.cpp
+++ b/CMSIS/DSP/Testing/testmain.cpp
@@ -55,6 +55,7 @@
            // by a server running on a host.
            #if defined(EMBEDDED)
            Client::IORunner runner(&io,&mgr,Testing::kTestOnly);
+           //Client::IORunner runner(&io,&mgr,Testing::kTestAndDump);
            #else
            // Works also in embedded but slower since data is dumped
            Client::IORunner runner(&io,&mgr,Testing::kTestAndDump);
diff --git a/CMSIS/DSP/Toolchain/GCC.cmake b/CMSIS/DSP/Toolchain/GCC.cmake
index 8d8068b..e6d679a 100644
--- a/CMSIS/DSP/Toolchain/GCC.cmake
+++ b/CMSIS/DSP/Toolchain/GCC.cmake
@@ -39,8 +39,14 @@
     target_compile_options(${PROJECTNAME} PUBLIC "-mthumb")
   endif()
 
+  target_link_options(${PROJECTNAME} PUBLIC "-mcpu=${ARM_CPU}")
+
   # Need to add other gcc config for other cortex-m cores
-  
+  if (ARM_CPU STREQUAL "cortex-m55" )
+     target_compile_options(${PROJECTNAME} PUBLIC "-mfpu=fpv5-d16")
+     target_link_options(${PROJECTNAME} PUBLIC "-mfpu=fpv5-d16")
+  endif()
+
   if (ARM_CPU STREQUAL "cortex-m33" )
      target_compile_options(${PROJECTNAME} PUBLIC "-mfpu=fpv5-sp-d16")
      target_link_options(${PROJECTNAME} PUBLIC "-mfpu=fpv5-sp-d16")
diff --git a/CMSIS/DSP/gcc.cmake b/CMSIS/DSP/gcc.cmake
index 81a7530..3f7b6e6 100644
--- a/CMSIS/DSP/gcc.cmake
+++ b/CMSIS/DSP/gcc.cmake
@@ -59,6 +59,7 @@
 endif()
 
 add_link_options("-Wl,--start-group")
+#add_link_options("-mcpu=${ARM_CPU}")
 
 # Where is the target environment
 #SET(CMAKE_FIND_ROOT_PATH "${tools}")