<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/65195>65195</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
We should drop nonnull, range, and align metadata when speculating if the poison value may trigger UB.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
miscompilation,
llvm:optimizations
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
DianQK
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DianQK
</td>
</tr>
</table>
<pre>
I tried this IR:
```llvm
define i32 @foo(i1 %c, ptr dereferenceable(8) align 8 %p) {
entry:
br i1 %c, label %if, label %join
if:
%v = load i32, ptr %p, !range !{i32 0, i32 10}
%cv = icmp eq i32 %v, 1
br i1 %cv, label %join, label %exit
join:
%phi = phi i32 [ %v, %if ], [ 0, %entry ]
ret i32 %phi
exit:
ret i32 0
}
```
The current 17-rc version preserved `range` metadata. This poison will trigger UB on `br`.
https://llvm.godbolt.org/z/xrGPYrv1n.
Bisected 53500e333d35062942065d55364c45d97f03eac0. cc @nikic
End-to-end mis-compilation is https://github.com/rust-lang/rust/issues/115385.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8lN-u4yYQxp-G3IxiYTBOfOGLk5OmWvWmrbaqeklgbLPF4ALO7tmnr7CTEx-ttFIU82c832-Gz8gYTe8QWyJOhLGzke6P3whjRJx3ck6DD-26trt6_dZ-ghQMakiDifDpT8JfCD0T-kJquv6svY3rksbOOATDGZCKdt4TdjQlECYUYa8wpQAaA3YY0CmUV4uEHY-ENSCt6R0cc-iU5-RwWlOiS-HtXRPgGmCT0cor2jwz3YfpF2_cnXL5N90zBWHiBoSfwXqpM-sDbdV-BcLKIF2PeUAOp1wNzet5UFJyOD9YMsWayqhxAvxvrZyJWw4vf0S-_Qi5XcBvJm2pl4Bn6ZlvMItefi5a4vSut3QBiDgvE3FaoXPa3MJl454oYHqQToPZKi4ET8VHIL3HPEp_P_rtu58HBDWHgC5BedgHBTcM0XgHU8CI4YYaSE2X1pKawohJaplkAZ-zsyZvonfw1VibDdf3GOCvE3iXX7oGUtNi1RlSmmKGZBfCLtl8Re_11dtU-NATdvlO2OVb-PX3f8KtdMUW8WQiqoQaBBeUIudcc0Fr1lSM1kILwetKVUI3h45ylIoWoFS2sjP_GgXbVL84vU9-j07DaOJe-XEyVqZcronwkbE3aZivhfIjYZcwx7S30vX3MWEXE-OMkbBLWQp-FMVOt1w3vJE7bMu64TWrD6LcDS2jjTgcGlSyaiqKTPGGKV0fquO1obRpdqZllHHaUEa5YLwsKuyOUtW8kbxmnehIRXGUxhZL33zod4t4W4uyEbvFifF-L4wmbqrK9wN7JYwtXzt_8VMyo_m-7MX75RHavLm_zn0kFbUmpvjUSSZZbP9GiIOfrQYd_ATOOzdbm426-oK9gnT6fh08HAJfB3QQJ1RzhnE9mA7SgA_P3KSdEUb5tjFOsZuDbX9yDksd62M_Bf8F1YejWBryfwAAAP__NVKCDw">