<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/59646>59646</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
D138922 breaks addtf3.c compilation on Solaris/sparcv9
</td>
</tr>
<tr>
<th>Labels</th>
<td>
bug,
backend:Sparc,
regression
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
rorth
</td>
</tr>
</table>
<pre>
Compilation of `compiler-rt/lib/builtins/addtf3.c` and `compiler-rt/lib/builtins/divtf3.c` is currently broken on Solaris/sparcv9:
```
fatal error: error in backend: Cannot select: t31: f128 = SPISD::SELECT_REG t43, t17, Constant:i32<49>, t29
t43: f128 = INSERT_SUBREG t42, t38, TargetConstant:i32<4>
t42: f128 = INSERT_SUBREG IMPLICIT_DEF:f128, t35, TargetConstant:i32<2>
t41: f128 = IMPLICIT_DEF
t35: f64,ch = load<(load (s64) from constant-pool)> t0, t53, undef:i64
t53: i64,ch = load<(load (s64) from got)> t0, t52, undef:i64
t52: i64 = add SPISD::GLOBAL_BASE_REG:i64, t50
t51: i64 = SPISD::GLOBAL_BASE_REG
t50: i64 = add t47, t49
t47: i64 = SPISD::Hi TargetConstantPool:i64<fp128 0xL00000000000000007FFF800000000000> 0 [TF=11]
t46: i64 = TargetConstantPool<fp128 0xL00000000000000007FFF800000000000> 0 [TF=11]
t49: i64 = SPISD::Lo TargetConstantPool:i64<fp128 0xL00000000000000007FFF800000000000> 0 [TF=12]
t48: i64 = TargetConstantPool<fp128 0xL00000000000000007FFF800000000000> 0 [TF=12]
t33: i64 = undef
t33: i64 = undef
t39: i32 = TargetConstant<2>
t38: f64,ch = load<(load (s64) from constant-pool + 8)> t0, t37, undef:i64
t37: i64 = add t53, Constant:i64<8>
t53: i64,ch = load<(load (s64) from got)> t0, t52, undef:i64
t52: i64 = add SPISD::GLOBAL_BASE_REG:i64, t50
t51: i64 = SPISD::GLOBAL_BASE_REG
t50: i64 = add t47, t49
t47: i64 = SPISD::Hi TargetConstantPool:i64<fp128 0xL00000000000000007FFF800000000000> 0 [TF=11]
t46: i64 = TargetConstantPool<fp128 0xL00000000000000007FFF800000000000> 0 [TF=11]
t49: i64 = SPISD::Lo TargetConstantPool:i64<fp128 0xL00000000000000007FFF800000000000> 0 [TF=12]
t48: i64 = TargetConstantPool<fp128 0xL00000000000000007FFF800000000000> 0 [TF=12]
t33: i64 = undef
t36: i64 = Constant<8>
t33: i64 = undef
t40: i32 = TargetConstant<4>
t17: f128,ch = CopyFromReg t0, Register:f128 %87
t16: f128 = Register %87
t30: i32 = Constant<49>
t29: i64 = or t26, t28
t26: i64 = xor t4, t9
t4: i64,ch = CopyFromReg t2:1, Register:i64 %3
t3: i64 = Register %3
t9: i64,ch = CopyFromReg t7:1, Register:i64 %1
t8: i64 = Register %1
t28: i64 = xor t27, Constant:i64<-9223372036854775808>
t27: i64 = xor t2, t7
t2: i64,ch = CopyFromReg t0, Register:i64 %2
t1: i64 = Register %2
t7: i64,ch = CopyFromReg t0, Register:i64 %0
t6: i64 = Register %0
t25: i64 = Constant<-9223372036854775808>
In function: __addtf3
```
A reghunt traced this down to [D138922](https://reviews.llvm.org/D138922).
The error can be reproduced with
```
clang -cc1 -triple sparcv9-sun-solaris2.11 -emit-obj -O3 addtf3-0ef566.c
```
[addtf3-0ef566.c.txt](https://github.com/llvm/llvm-project/files/10281648/addtf3-0ef566.c.txt)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsV12PmzoT_jXOjUWEx0DMRS4SEvqutO9ptdlzvTLgELcER8Zs239_ZEN2gXycno9eHKmraE3M-HlmxjOTGd40sqyFWKJwjcLNjLfmoPRSK20Os0wV35eJOp5kxY1UNVZ7jCI_dztCe9ogSCuZIUizVlZG1g2ClBeF2dN5jiIf87r4gROFfH07IRuct1qL2lTfcabVF1FjVeOdqriWVrg5cZ2_xoiukL9B_gpFfv9xX_fc8AoLrZVGdNU9YFnjjOdfRF3YvYTXtTK4EZXIjd0wlNhlT4BhRDd49-lht7EEdLXbPm6T55en7QdsAoogwYYs7JKoujG8tuclBUSTIEZ06wQg7lTB7sgQ-OG33fbp-WX3-7oDBCdPmV2euS6FuYS1qD0cdkduAz78_9PjQ_Lw_LLZpoiurFRHEN4hgBGBpRg7YwQ6lKOhk4sCBEl-cLKV4gWiCQJmnzAC1tjXMd5rdcR5T-2dlKoQWH9h4zsNQ-fati7E3ioWBUMm7N7TFZY_zlUqM2GAuwzYSXQcDp4XxTAOPjx-XK8eX9ar3dYGQw_hgP0pksUiQ6w7OFeO-lM1TOAizgTnuLIb1-H_JyfX_Mm6ulOWJvuTvVT_26M_-VukacoG363ffIzC9XOK6IYQFG4uNe2CJRpqco3732C1pl83-FH9DIPhjsHspxk8YDWUDmm6sB2nxJ9IGNq5jMIVRS_S3tagf5DMGMEas3HC0cWdhLNvp1He1YBhfXJ3yN4V_Yll4Ff2_8r-_1T2jzw_yGs2_Tm_i2UC_26VGHYftvHpG4P39EvU6Xuq1fFJlH2KPYlSNkbovgHBCEK2GDCSaNRenMXHcoaO9BpqFA9VglFkKI0NRF0PxgaUMHLWNyvWZe97Sl3UlZFhtjaQiXEODkI6vZgh1dC4kaCJ7xMubhOSCSG7RUiGHmAXHoCLNtYljRcDULoAn0YsDBaLkPkXIQWLSzTnz_P9Gbhv3jRQetPgoicjt4ybiJrF3yK8KN4mukXojz0Q3ki_u-57qPG-rXM7StnjLy_dqHR1jllhLcpDWxtsNM9Fgc1BNrhQX2tslK0aG0JZDK5qADsYc2psTYQUQarFqxRfm3lVvR7nSpcI0rM0xPOezv1_Poh-RMp5jTOBtThpVbSW8Ks0h6uq5RWvS-zlOcGe0fJUCdwPZV7T1l7TjWowJwR74iiNp7LP2PtIcWeu54t9GEXz_Co4CtcTsbn5Zq5ZWUpzaLN5ro52pqxez4t30uqznewg3ctK2JmR-MBIFLC36XQMfh7YZsWSFjGN-UwsSbQgUchCn8wOy2wfRqGgnPMwzyjNaBzGzOeE5BQIDaOZXIIPQOyH0NAnc5IxBsB4LIAXIGIU-OLIZfV2JzPZNK1YhnEURLOKZ6Jq3AwOkLUlsjeV2Oe3qXVnPfy2r0WpRdPYQHIhMNNLZ3rWlg0K_Eo25v36Z0aaSiz7EMCZFvxLg89jOs6HA_6VSXvW6mr5l13vzLMozsI_AgAA___yI1NT">