AMD64 ICC 19.1.2.254
0==407113== Conditional jump or move depends on uninitialised value(s)
1==407113== at 0x485FB93: secp256k1_ec_pubkey_create (secp256k1.c:568)
2==407113== by 0x401490: main (valgrind_ctime_test.c:56)
3==407113==
4==407113== Conditional jump or move depends on uninitialised value(s)
5==407113== at 0x48674AA: secp256k1_scalar_is_zero (secp256k1.c:521)
6==407113== by 0x48674AA: secp256k1_scalar_set_b32_seckey (scalar_impl.h:61)
7==407113== by 0x48674AA: secp256k1_scalar_cmov (secp256k1.c:496)
8==407113== by 0x48674AA: secp256k1_ecdsa_sign_inner (secp256k1.c:488)
9==407113== by 0x48670BE: secp256k1_ecdsa_sign_recoverable (main_impl.h:132)
10==407113== by 0x401821: main (valgrind_ctime_test.c:81)
Your volatile tricks do not fool ICC.
Originally posted by @gmaxwell in #772 (comment)