This supports for floating-point absolute difference instructions, i.e. FABD scalar/vector.
Verified with linux-aarch64-server-release, tier1-3. Added a JMH micro `test/micro/org/openjdk/bench/vm/compiler/FloatingScalarVectorAbsDiff.java` for performance test. The FABD (scalar), the performance tests handle registers directly, the average latency reduces to almost half (~57%) of the original. For FABD (vector), we restrict the data size (~24KB) to be less than L1 data cache size (32KB), so that the memory access can hit in L1, and witness 14.2% (float) and 21.2% (double) improvements. The JMH results on Kunpeng916: Benchmark (count) (seed) Mode Cnt Score Error Units # before, fsub+fabs FloatingScalarVectorAbsDiff.testScalarAbsDiffDouble 1024 316731 avgt 10 6038.333 ± 3.889 ns/op FloatingScalarVectorAbsDiff.testScalarAbsDiffFloat 1024 316731 avgt 10 6005.125 ± 3.025 ns/op FloatingScalarVectorAbsDiff.testVectorAbsDiffDouble 1024 316731 avgt 10 950.340 ± 9.398 ns/op FloatingScalarVectorAbsDiff.testVectorAbsDiffFloat 1024 316731 avgt 10 454.350 ± 1.798 ns/op # after, fabd FloatingScalarVectorAbsDiff.testScalarAbsDiffDouble 1024 316731 avgt 10 3483.801 ± 1.763 ns/op FloatingScalarVectorAbsDiff.testScalarAbsDiffFloat 1024 316731 avgt 10 3442.412 ± 1.866 ns/op FloatingScalarVectorAbsDiff.testVectorAbsDiffDouble 1024 316731 avgt 10 816.301 ± 4.454 ns/op FloatingScalarVectorAbsDiff.testVectorAbsDiffFloat 1024 316731 avgt 10 354.710 ± 1.001 ns/op ------------- Commit messages: - 8256318: AArch64: Add support for floating-point absolute difference Changes: https://git.openjdk.java.net/jdk/pull/1215/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1215&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8256318 Stats: 209 lines in 20 files changed: 176 ins; 0 del; 33 mod Patch: https://git.openjdk.java.net/jdk/pull/1215.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/1215/head:pull/1215 PR: https://git.openjdk.java.net/jdk/pull/1215