https://bugs.kde.org/show_bug.cgi?id=442168
--- Comment #2 from Xavier Roche ---
Additional notes: isolating the faulty function
static double (*volatile pvalidate)(double a) = validate; // used in
minimalTest
double validate(double a)
{
return std::isfinite(a) ? a : 1.0f;
}
The difference between the correctly executed code under valgrind and the
faulty one:
_Z8validated: # @_Z8validated
pushq %rax
.cfi_def_cfa_offset 16
- movsd %xmm0, (%rsp) # 8-byte Spill
+ vmovsd %xmm0, (%rsp) # 8-byte Spill
callq
_Z8isfiniteIdENSt3__19enable_ifIXaasr3std13is_arithmeticIT_EE5valuesr3std14numeric_limitsIS2_EE12has_infinityEbE4typeES2_
- movsd (%rsp), %xmm0 # 8-byte Reload
+ vmovsd (%rsp), %xmm0 # 8-byte Reload
# xmm0 = mem[0],zero
testb %al, %al
jne .LBB6_2
# %bb.1:
- movsd .LCPI6_0(%rip), %xmm0 # xmm0 = mem[0],zero
+ vmovsd .LCPI6_0(%rip), %xmm0 # xmm0 = mem[0],zero
.LBB6_2:
popq%rax
retq
--
You are receiving this mail because:
You are watching all bug changes.