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

    <tr>
        <th>Summary</th>
        <td>
            [CIR] Upstream unary expression support
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            ClangIR
      </td>
    </tr>

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

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

<pre>
    ### Overview

Upstream support for unary expressions and the cir.unary operation. The initial change should just add support a single operation, such as `not`. Other unary operators can then be added afterwards.

### Suggested minimal test case

```
bool f(bool a) {
  return !a;
}
```

### Existing incubator tests

clang/test/CIR/CodeGen/unary.cpp
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxckt1uozAQhZ_G3IyKHDuQ5oKLtF1We1Vpfx5gwAO469jIY6fN26-cpK22kgVomDnzHesgs509USeaB9E8VZjTEmKH3pz_4tmFWA3BnDuh9PXA84niydKrkAchD39WTpHwCJzXNcQEU4iQPcYz0NsaidkGz4DeQFoIRhvr69-wUsRkg6_h90JgvU0WHYwL-pmAl5CdgZfMCdCYD3UEtn529Dku1CNwHhdABtFKH5JoZQ3PaaF3kGtviAwj-oLhYaAiSwZwShRfMRqur4Y-jf7K80ycyMDRentEB4k4wYhMt9ZW3o48DCE4mIS6v3ygUHsQuwchDwCRUo4ehNqg0KUkdk9fpv_b--3NcrJ-BuvHPBTwy2K-9o0O_SxUX0pC9Y8_fpZnMPSdvFD9xXE9rmtlOm32eo8VdZvddqOlbJv7aukmtR3ahibTKDVN7VZN0ygNDnqPzbRrp8p2SqpGatkqpXf6vt6SluNm2JHSpNuRxFbSEa2rnTsd6xDnyjJn6jZabvZN5XAgx5c8KfVYcAujKuGKXRm5G_LMYiud5cSfIskmd4lh8dQ8wUe0vsbpPQ1Vjq5bUlpZ6INQvVD9bNOSh3oMR6H6onx73a0xvNBYbuzCykL1N9xTp_4FAAD__-Va97I">