Describe the bug
Compilation of CLAPACK's dlamch.c using icx produces a recursive jmp instruction on itself, for optimization levels >= -O1
The same problem is not present with the clang binary distributed alongside icx.
To reproduce
- Unpack dlamch.tar.gz
CC=${CMPLR_ROOT}/bin/icx make run: this command will hang at runtime (after printing Start) due to the recursive jmp produced by icx
CC=${CMPLR_ROOT}/bin/icx make dlamch.s: you will find the jmp instruction shortly after the dlamc2_ label, around line 242 for -O1, e.g.:
.LBB1_4: # =>This Inner Loop Header: Depth=1
jmp .LBB1_4
make clean
CC=${CMPLR_ROOT}/bin/compiler/clang make run: this will run correctly (printing End after Start)
CC=${CMPLR_ROOT}/bin/compiler/clang make dlamch.s: inspecting the assembly there's no such jmp
Environment
- OS: tested on Ubuntu 24.04 using docker's image
intel/oneapi:2026.1.0-devel-ubuntu24.04
- Target device and vendor: x86
- DPC++ version: Intel(R) oneAPI DPC++/C++ Compiler 2026.1.0 (2026.1.0.20260617)
- Dependencies version: [opencl:cpu][opencl:0] Intel(R) OpenCL, AMD Ryzen 5 7535HS with Radeon Graphics OpenCL 3.0 (Build 0) [2026.21.6.0.17_160000]
Additional context
No response
Describe the bug
Compilation of CLAPACK's
dlamch.cusingicxproduces a recursivejmpinstruction on itself, for optimization levels >=-O1The same problem is not present with the
clangbinary distributed alongsideicx.To reproduce
CC=${CMPLR_ROOT}/bin/icx make run: this command will hang at runtime (after printingStart) due to the recursivejmpproduced byicxCC=${CMPLR_ROOT}/bin/icx make dlamch.s: you will find thejmpinstruction shortly after thedlamc2_label, around line 242 for-O1, e.g.:make cleanCC=${CMPLR_ROOT}/bin/compiler/clang make run: this will run correctly (printingEndafterStart)CC=${CMPLR_ROOT}/bin/compiler/clang make dlamch.s: inspecting the assembly there's no suchjmpEnvironment
intel/oneapi:2026.1.0-devel-ubuntu24.04Additional context
No response