The test tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs started failing on riscv64 from rustc 1.94.0-beta.
It was passing with rustc 1.93.0.
The failure occurs because FileCheck no longer finds the expected store instruction in the generated LLVM IR.
1.93 (passing) :
store float 4.000000e+00, ptr %3, align 4
%5 = call float @llvm.sqrt.f32(float %4)
1.94-beta (failing) :
%_2 = call float @llvm.sqrt.f32(float 4.000000e+00)
In 1.94.0-beta, the constant 4.0 is passed directly to llvm.sqrt.f32, and the intermediate store (and corresponding load) are no longer emitted, causing the CHECK pattern to fail.
I have attached the following files for reference :
call-llvm-intrinsics-1.93.0.ll
call-llvm-intrinsics-1.94.0.ll
Backtrace.txt
The test
tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rsstarted failing on riscv64 from rustc1.94.0-beta.It was passing with rustc
1.93.0.The failure occurs because FileCheck no longer finds the expected store instruction in the generated LLVM IR.
1.93 (passing) :
1.94-beta (failing) :
%_2 = call float @llvm.sqrt.f32(float 4.000000e+00)In 1.94.0-beta, the constant 4.0 is passed directly to llvm.sqrt.f32, and the intermediate store (and corresponding load) are no longer emitted, causing the CHECK pattern to fail.
I have attached the following files for reference :
call-llvm-intrinsics-1.93.0.ll
call-llvm-intrinsics-1.94.0.ll
Backtrace.txt