Bug 509963

Summary: AARCH64 half precision fmov unsupported
Product: [Developer tools] valgrind Reporter: Peter Boyle <pboyle>
Component: memcheckAssignee: Julian Seward <jseward>
Status: REPORTED ---    
Severity: normal    
Priority: NOR    
Version First Reported In: 3.25.1   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Peter Boyle 2025-09-26 14:58:37 UTC
SUMMARY

Unsupported opcode on big expensive NVIDIA Grace/Hopper supercomputer.
Leaves us unable to debug why MPI doesn't work properly (!).

disInstr(arm64): unhandled instruction 0x1EE21000
disInstr(arm64): 0001'1110 1110'0010 0001'0000 0000'0000
disInstr(arm64): unhandled instruction 0x1EE21000
disInstr(arm64): 0001'1110 1110'0010 0001'0000 0000'0000
==181057== valgrind: Unrecognised instruction at address 0x20fc3c38.
==181057==    at 0x20FC3C38: H5T__init_native_float_types (in /users/pboyle/Software/spack/opt/spack/linux-neoverse_v2/hdf5-1.14.6-jud3ubaoatigxsxkn6gd7vhxypnkyzy3/lib\
/libhdf5.so.310.5.1)

Opcode disassembles in HDF5 library as:
  2c3c38:       1ee21000        fmov    h0, #4.000000000000000000e+00


STEPS TO REPRODUCE
1. Buy big expensive NVIDIA Grace/Hopper thing
2. Spack install HDF5 & link to any main programme, because it's called from dl_init
3. Run under valgrind for AARCH64

OBSERVED RESULT

disInstr(arm64): unhandled instruction 0x1EE21000
disInstr(arm64): 0001'1110 1110'0010 0001'0000 0000'0000
disInstr(arm64): unhandled instruction 0x1EE21000
disInstr(arm64): 0001'1110 1110'0010 0001'0000 0000'0000
==181057== valgrind: Unrecognised instruction at address 0x20fc3c38.

EXPECTED RESULT

No errors and correctly parse as:
  2c3c38:       1ee21000        fmov    h0, #4.000000000000000000e+00


SOFTWARE/OS VERSIONS
Linux

ADDITIONAL INFORMATION