SuccessChanges

Summary

  1. GlobalISel: Add combines for extend operations (details)
  2. [flang] Improve compile-time shape conformance checking (details)
  3. [PowerPC] Implement instruction definitions/MC Tests for xvcvspbf16 and xvcvbf16spn (details)
  4. [DAGCombiner] Fold an AND of a masked load into a zext_masked_load (details)
  5. [libc++] Improve REQUIRES for _ExtInt test on recent Clangs (details)
  6. [builtins] Unify the softfloat division implementation (details)
  7. [PowerPC] Handle STRICT_FSETCC(S) in more cases (details)
  8. GlobalISel: Implement computeKnownBits for G_BSWAP and G_BITREVERSE (details)
  9. GlobalISel: Port smarter known bits for umin/umax from DAG (details)
  10. GlobalISel: Implement computeNumSignBits for G_SELECT (details)
  11. [tsan] Fix "failed to intercept sysctlnametomib" on FreeBSD (details)
  12. x87 FPU state instructions do not use an f32 memory location (details)
Commit 061182b7baf879badc9ff82c88d383d2d9ce279b by vkeles
GlobalISel: Add combines for extend operations

https://reviews.llvm.org/D86516
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/combine-amdgpu-cvt-f32-ubyte.mir
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-extending-loads-s1.mir
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/combine-ext.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/combine-shl-from-extend-narrow.prelegal.mir
Commit 1a633e72f65df1ca75c0b8f3ab916d025adc36c1 by pklausler
[flang] Improve compile-time shape conformance checking

Conformance checking of the shapes of the operands of
array expressions can't, of course, always be done at
compilation time; but when the shapes are known and
nonconformable, we should catch the errors that we can.

Differential Revision: https://reviews.llvm.org/D86887
The file was modifiedflang/test/Semantics/select-rank.f90
The file was modifiedflang/lib/Semantics/expression.cpp
Commit ca2227c1b3f52611de7d051ffea91b0c6c21e1ac by amy.kwan1
[PowerPC] Implement instruction definitions/MC Tests for xvcvspbf16 and xvcvbf16spn

This patch adds the td instruction definitions of the xvcvspbf16 and xvcvbf16spn
instructions, along with their respective MC tests.

Differential Revision: https://reviews.llvm.org/D86794
The file was modifiedllvm/test/MC/PowerPC/ppc64-encoding-ISA31.s
The file was modifiedllvm/test/MC/Disassembler/PowerPC/ppc64-encoding-ISA31.txt
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
Commit 15e880a04fcfda8eb18e9cd6cab4fb8c0d2588e9 by samuel.tebbs
[DAGCombiner] Fold an AND of a masked load into a zext_masked_load

This patch folds an AND of a masked load and build vector into a zero
extended masked load.

Differential Revision: https://reviews.llvm.org/D86789
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was addedllvm/test/CodeGen/Thumb2/mve-zext-masked-load.ll
Commit 8df143c2cc0a3b49440cafe8a80b0f72cee6f166 by Louis Dionne
[libc++] Improve REQUIRES for _ExtInt test on recent Clangs

The previous REQUIRES: would cause the test to run only on Clang-11, not
even on following versions of Clang, which was mostly not the intent.
The file was modifiedlibcxx/test/libcxx/atomics/ext-int.verify.cpp
Commit 0e90d8d4fed8c8cac70700acfdef6fc2ca2d482d by atrosinenko
[builtins] Unify the softfloat division implementation

This patch replaces three different pre-existing implementations of
__div[sdt]f3 LibCalls with a generic one - like it is already done for
many other LibCalls.

Reviewed By: sepavloff

Differential Revision: https://reviews.llvm.org/D85031
The file was modifiedcompiler-rt/lib/builtins/divdf3.c
The file was modifiedcompiler-rt/lib/builtins/divsf3.c
The file was modifiedcompiler-rt/lib/builtins/fp_lib.h
The file was modifiedcompiler-rt/lib/builtins/int_util.h
The file was modifiedcompiler-rt/lib/builtins/divtf3.c
The file was addedcompiler-rt/lib/builtins/fp_div_impl.inc
The file was modifiedcompiler-rt/test/builtins/Unit/divdf3_test.c
Commit 29ae4485950ed76faa94dabbd13bbe91d2b5c750 by qiucofan
[PowerPC] Handle STRICT_FSETCC(S) in more cases

On -O0, i1 strict_fsetcc will be promoted to i32. We don't handle that
in TD patterns. This patch fills logic in PPCISelDAGToDAG to handle more
cases.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D86595
The file was modifiedllvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
The file was addedllvm/test/CodeGen/PowerPC/fp-strict-fcmp-noopt.ll
Commit 759482ddaa5eead883ed59a26af2f1dc66a6d4d1 by Matthew.Arsenault
GlobalISel: Implement computeKnownBits for G_BSWAP and G_BITREVERSE
The file was modifiedllvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
The file was modifiedllvm/include/llvm/Support/KnownBits.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit 35c94d3f7e577d22ade48eaf73e6d1451c27f8b2 by Matthew.Arsenault
GlobalISel: Port smarter known bits for umin/umax from DAG
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/postlegalizercombiner-and.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
The file was modifiedllvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
Commit 32a8a10b429809bcd14ff7f409988afbe962f0d4 by Matthew.Arsenault
GlobalISel: Implement computeNumSignBits for G_SELECT
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/GISelKnownBits.h
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/combine-sext-inreg.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
Commit 7be86829216698b6f4d0e083d48d7095898fc9c8 by Alexander.Richardson
[tsan] Fix "failed to intercept sysctlnametomib" on FreeBSD

The sysctlnametomib function is called from __tsan::Initialize via
__sanitizer::internal_sysctlbyname (see stack trace below). This results
in a fatal error since sysctlnametomib has not been intercepted yet.
This patch allows internal_sysctlbyname to be called before
__tsan::Initialize() has completed. On FreeBSD >= 1300045 sysctlbyname()
is a real syscall, but for older versions it calls sysctlnametomib()
followed by sysctl(). To avoid calling the intercepted version, look up
the real sysctlnametomib() followed by internal_sysctl() if the
syscall is not available.

This reduces check-sanitizer failures from 62 to 11 for me.

==34433==FATAL: ThreadSanitizer: failed to intercept sysctlnametomib
    at /exports/users/alr48/sources/upstream-llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:51
    name=0x7fffffffce10, namelenp=0x7fffffffce08)
    at /exports/users/alr48/sources/upstream-llvm-project/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:7908
    oldp=0x7fffffffcf2c, oldlenp=0x7fffffffcf20, newp=0x0, newlen=0)
    at /exports/users/alr48/sources/upstream-llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:803
    at /exports/users/alr48/sources/upstream-llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:2152
    at /exports/users/alr48/sources/upstream-llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp:367
    fname=0x21c731 "readlink", pc=34366042556)
    at /exports/users/alr48/sources/upstream-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:255
    bufsiz=1024)
    at /exports/users/alr48/sources/upstream-llvm-project/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:7151

Reviewed By: #sanitizers, vitalybuka

Differential Revision: https://reviews.llvm.org/D85292
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
Commit a57fdcdd404bd9fa69463c587ee7915dde8541a2 by epastor
x87 FPU state instructions do not use an f32 memory location

These instructions actually use a 512-byte location, where bytes 464-511 are ignored.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D86942
The file was modifiedllvm/lib/Target/X86/X86InstrFPStack.td