<div dir="ltr">Hey llvm-dev,<div><br></div><div>Continuing a discussion from D50913...<br><div><br></div><div>A group working on the FP rounding mode and trap-safety project have run into a situation where it would make sense to add a new FNEG instruction and decouple the existing FNEG<->FSUB transformations.</div></div><div><br></div><div>The IEEE-754 Standard (<span style="color:rgb(0,0,0);font-family:"Segoe UI","Segoe UI Emoji","Segoe UI Symbol",Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px">Section 5.5.1) </span>makes it clear that neg(x) and sub(-0.0,x) are two different operations. The former is a bitwise operation, while the latter is an arithmetic operation.</div><div><br></div><div>That said, LLVM currently conflates the two operations in several places. It would be nice to separate the two operations to give the user explicit control over which type of operation is generated.</div><div><br></div><div>D50913 covers a lot of ground, so I'll leave the discussion here for now until any interested parties are up to speed.</div><div><br></div><div>Thanks for looking,</div><div>Cameron</div></div>