<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/85069>85069</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [DebugInfo][GVNSink] Wrong branch execution caused by instruction sinking
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Apochens
      </td>
    </tr>
</table>

<pre>
    Please check this @SLTozer @dwblaikie 

```C
void func(int a, int *b) {
    if (a) {
        *b = 1;
    } else {
        *b = 1;
    }
}

int main() {
 int *b;
    func(0, b);
    return 0;
}
```
```Bash
$ clang -S -emit-llvm -Xclang -disable-O0-optnone main.c -o main.ll
$ opt -S -passes=mem2reg,gvn-sink main.ll -o main-opt.ll
$ clang main-opt.ll -o main
```
```Bash
$ mylldb a.out 
(lldb) target create "a.out"
Current executable set to '/data1/llvm-test/GVNSink/a.out' (x86_64).
(lldb) b func 
Breakpoint 1: where = a.out`func + 8 at gvnsink.c:2:9, address = 0x0000000000001138
(lldb) r
Process 2786226 launched: '/data1/llvm-test/GVNSink/a.out' (x86_64)
Process 2786226 stopped
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
 frame #0: 0x0000555555555138 a.out`func(a=0, b=0x00007fffffffdac8) at gvnsink.c:2:9
   1    void func(int a, int *b) {
-> 2        if (a) {
   3            *b = 1;
   4        } else {
   5            *b = 1;
   6        }
   7    }
(lldb) s    
Process 2786226 stopped
* thread #1, name = 'a.out', stop reason = step in
    frame #0: 0x000055555555514f a.out`func(a=0, b=0x00007fffffffdac8) at gvnsink.c:3:12
   1    void func(int a, int *b) {
   2        if (a) {
-> 3            *b = 1;
   4        } else {
   5            *b = 1;
   6        }
   7    }
(lldb) v
(int) a = 0
(int *) b = 0x00007fffffffdac8
(lldb)
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVluv4zQQ_jXuy6hVMm5uD31oTyhCQrDSIuANOck0MSe1I9s5F349spP0tHvKwi5CwqoiZ8bzea5fI6yVrSLaseTAknIlRtdps9sPuu5I2VWlm9fdh56EJag7qh_BddIC20Yfv_9J_0HGb5vnqhfyURKwqGTRfn6m0fR7mN6ftGzgNKqaYS6VA8HwAfyG4b5iWADLDtNJAAB5Aoa5eCf3yxsA4yXEjF-pWFYC9Za-xGB29bIJT-_UWUjFML-9_-LtNcocUuTD8XHcKA250SiILsK3q5b0fPJ6ELabRbiFuheqhfVHWNNZunXfP51h_essbaQVVU_rH6O1HpzSioLbmxrWetr1_RuUHlwAGoS1ZBkvz3RGQy3Dh_ZJra1Uj4vRYu9hbzCmi69Uy8kvien82vdNBWKjR7d0DOZe5rPthGnJQW1IOAKGGM4xxOnkw2gMKQf0QvXofPhgyYHTwDBjeGyEEzHDo8_U2pF1DI_f_vzDR6keGR5nrMz31kue_pZuGRabdz5UoaizbwdD4nHQvvYx43t47shQ6KYJLY2mw3iAHISD9kn5XG5qxvfI-L7wjSGaxpC1wSx6ia5WHPP8nQNmknwwuvZWmOUpYgq9GFXdUePd-Opw70Nbp4eBmsWTPbjOkGiAIY99AEqcp6AZZgusl3s7MCSsVkFdXWVrE8-DcDLBGnnkPZ_iT5YV8_wmk2HseTnPEy-n49lpWo2ow1DeTfQydrEfvX_ON2vGvwFcyOIvmIfD1bpPKNuL-h4TJX8PkF4BXITZLVW9NYkNiv-0mtbRAMt0B7L7bCW3p39fSc74PsavLSXA5wsZSv3_K-XTRSKVC0mZmOJa7C-ayOmNRG5y-QnoXUpeNTveFLwQK9rFWRxxjkWSrbpdEp1oWyM1HDlmDa-KvEkLfkqTSiQJJSu5wwi3EY95jFjE2YanTUG8ijNqougkCraN6Cxkv_FctNGmXUlrR9rlSZQWq15U1NvwmYGo6BmC0tN6Uq7MLvBXNbaWbaNeWmffUJx0ffg-Kaka2-_USbOkZMlhobmkhF-MVi1URqi6m_8ZpFZQi9FSA9UrSGWdGesg9Z0mVbsaTb_rnBss43uGR4bHVrpurDa1Ps-MuhDrYPTvVHtuDV5bhscQ1Z8BAAD__xSJeOc">