diff --git a/Platforms/FVP/ARMv81MML/Startup/GCC/startup_ARMv81MML.c b/Platforms/FVP/ARMv81MML/Startup/GCC/startup_ARMv81MML.c index 0689aa02..ea3329fd 100755 --- a/Platforms/FVP/ARMv81MML/Startup/GCC/startup_ARMv81MML.c +++ b/Platforms/FVP/ARMv81MML/Startup/GCC/startup_ARMv81MML.c @@ -29,6 +29,8 @@ #error device not specified! #endif +#include + /*---------------------------------------------------------------------------- Exception / Interrupt Handler Function Prototype *----------------------------------------------------------------------------*/ @@ -120,6 +122,48 @@ extern const pFunc __VECTOR_TABLE[240]; #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 @@ void Default_Handler(void) } +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/README.md b/README.md index d2a540f0..584c3aca 100755 --- a/README.md +++ b/README.md @@ -141,4 +141,10 @@ In addition to that, ARM_DSP_CONFIG_TABLES must be enabled and finally ARM_FFT_A 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/Testing/CMakeLists.txt b/Testing/CMakeLists.txt index 2585f726..02ec709d 100644 --- a/Testing/CMakeLists.txt +++ b/Testing/CMakeLists.txt @@ -82,6 +82,7 @@ option(EMBEDDED "Embedded Mode" ON) option(FLOAT16TESTS "Float16 tests" OFF) option(MICROBENCH "Micro benchmarks" OFF) +option(EIGEIN "Eigen benchmarks" OFF) project(Testing) @@ -110,6 +111,8 @@ add_library(FrameworkLib STATIC) if (BENCHMARK) +set(STANDARDBENCH ON) + if (MICROBENCH) set (MICROSRC Source/Benchmarks/MicroBenchmarksF32.cpp @@ -117,6 +120,15 @@ if (MICROBENCH) 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 @@ set (NNSRC 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 (BENCHMARK) 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/Testing/PatternGeneration/Eigen.py b/Testing/PatternGeneration/Eigen.py new file mode 100755 index 00000000..3facfca4 --- /dev/null +++ b/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/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Input1_f32.txt b/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Input1_f32.txt new file mode 100755 index 00000000..6bbfda8d --- /dev/null +++ b/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/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Input2_f32.txt b/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Input2_f32.txt new file mode 100755 index 00000000..99ec97b1 --- /dev/null +++ b/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/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Reference1_f32.txt b/Testing/Patterns/EigenBenchmarks/VectorBenchmarks/VectorBenchmarksF32/Reference1_f32.txt new file mode 100755 index 00000000..852d473f --- /dev/null +++ b/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/Testing/testmain.cpp b/Testing/testmain.cpp index e7e819dd..fdbc4236 100644 --- a/Testing/testmain.cpp +++ b/Testing/testmain.cpp @@ -55,6 +55,7 @@ int testmain(const char *patterns) // 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/Toolchain/GCC.cmake b/Toolchain/GCC.cmake index 8d8068be..e6d679ab 100644 --- a/Toolchain/GCC.cmake +++ b/Toolchain/GCC.cmake @@ -39,8 +39,14 @@ function(compilerSpecificCompileOptions PROJECTNAME ROOT) 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/gcc.cmake b/gcc.cmake index 81a75309..3f7b6e66 100644 --- a/gcc.cmake +++ b/gcc.cmake @@ -59,6 +59,7 @@ if(IS_IN_TRY_COMPILE) endif() add_link_options("-Wl,--start-group") +#add_link_options("-mcpu=${ARM_CPU}") # Where is the target environment #SET(CMAKE_FIND_ROOT_PATH "${tools}")