[PATCH] D140988: [SystemZ] Implement lowering of GET_ROUNDING

Tulio Magno Quites Machado Filho via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 11 12:11:37 PST 2023


tuliom added a comment.

In D140988#4042746 <https://reviews.llvm.org/D140988#4042746>, @uweigand wrote:

>   CWD1 = efpc() & 3
>   CWD2 = (CWD1 ^ (CWD1 >> 1)) ^ 1

@uweigand  This is not generating the right output.
Actually, the current revision here is already broken.
Originally, this patch had:

  CWD2 = (~FPC ^ 0x3) >> 1

This can be rewritten as:

  CWD2 = ((FPC >> 1) ^ 1 & 0x1)

But this is not going to save any instructions.



================
Comment at: llvm/test/CodeGen/SystemZ/flt-rounds.ll:23
+
+define dso_local signext i32 @test_order(i32 noundef signext %0) {
+; CHECK-LABEL: test_order:
----------------
nikic wrote:
> nit: You can add `nounwind` to avoid irrelevant cfi directives.
@nikic I'm afraid there is an issue between `update_llc_test_checks.py` and SystemZ.
Whenever `nounwind` is used, the `CHECK`s are removed.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140988/new/

https://reviews.llvm.org/D140988



More information about the llvm-commits mailing list