<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/58875>58875</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[avr] Wrong code using R1 for avrtiny core family.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sprintersb
</td>
</tr>
</table>
<pre>
Compile the following C code
```c++
char func (long xx)
{
return xx > 1;
}
```
with `--target=avr -Os -save-temps -mmcu=attiny40`. This will spit out
```none
*.s:18:11: error: invalid register on avrtiny
cpc r23, r1
^
*.s:23:11: error: invalid register on avrtiny
mov r24, r1
^
```
A correct code is to use `__zero_reg__` instead of `r1`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydkk2PpCAQhn8NXioaBW314KE_Zq-TTDbZYwcUlQ2KAeye3l-_hd2dSc9tlxChLIr3oaqE6W7N0UyL0hL8KKE3Wpurmgc4Qms6SdITSfdkl95nS-ghzO1vO3IL_Tq3QGilDcZ8fhJaP0LKxynAYaVf7YxuIOwNMsIOz0OnbwJ386r8CGjFsed2kJ6wE79YiN8dxI5fZOzltOB-mto1-LxX8y0P8Qn8HJWDq9Ia3KI8mNV_k5jN_HwW3SeOsH1WhQ9i7UFaa2zYqPnCteoQfVDOSwtmBmQIQl_vCqNd2m21lBF6BJu9ul8GKd5elTHm_5Unc3ko5_-g_JrpPVbZWtn6rdqAqfMGVidD9s_nP9KaM3Kcz2giGOLwDkwfvCiH6b7fEskm2-3KOi2zqoi6hnU1q3nkldeyIcUB8Ulxgl82NMkmtLrQYx8ZNpx9vi6gYAfySelbEq1WN6P3S0gToT9wDtgVq0haM6Gh9eW5xIs1v_EJaCrnVulwU1RVWUQjYnV9xSTPO1G3Mu1LyniZF6JndVqVoog0F1K7AImEkWpoSmmWpVWWMZYWSSd2gta5YEUmasl7kqdy4konQTgxdohsszGIdXDo1Fgy9-XkzqlhlvJ5P1_9aGzjFqtmLK0T0UbcbLh_AaxYBr0">