In my hardware there are two special registers cannot be copied but can only be
assigned and referenced (read) in the other instruction. They are
allocatable also.<br>
<br>
br i1 %if_cond, label %then, label %else<br>
then:<br>
  %x1 = fptosi float %y1 to i32<br>
  br label %endif<br>
else:<br>
  %x2 = fptosi float %y2 to i32<br>
  br label %endif<br>
endif:<br>
  %x3 = phi i32 [%x1, %then], [%x2, %else]<br>
<br>
PNE::LowerAtomiPHINode() fails because TargetInstrInfo::copyRegToReg() doesn't support the copy of this type of register.<br>
<br>
Most registers of this hardware are f32. These two special register of
type i32 are provided to relative index the other f32 registers. The
value of these i32 registers can only be written by a FP-to-INT
conversion instruction. But these two i32 registers are not designed to
be copied from one to the other.<br>
  <br>
Alex.