llvm-project/llvm/test
Nicolai Haehnle a609259832 AMDGPU: Fix MUBUF offset bugs affecting llvm.amdgcn.buffer.* intrinsics
Summary:
This fixes two related bugs. First, the generic optimization passes
unfortunately generate negative constant offsets but the hardware treats
SOffset as an unsigned value.

Second, there is a hardware bug on SI and CI, where address clamping in MUBUF
instructions does not work correctly when SOffset is larger than the buffer
size. This patch works around this bug by never using SOffset.

An alternative workaround would be to do the clamping manually when SOffset
is too large, but generating the required code sequence during instruction
selection would be rather involved, and in any case the resulting code would
probably be worse.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96360

Reviewers: arsenm, tstellarAMD

Subscribers: arsenm, llvm-commits, kzhuravl

Differential Revision: http://reviews.llvm.org/D21326

llvm-svn: 272761
2016-06-15 07:13:05 +00:00
..
Analysis [CFLAA] Tag arguments as escaped instead of unknown. 2016-06-14 18:12:28 +00:00
Assembler IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
Bindings Add support for callsite in the new C API for attributes 2016-06-15 05:14:29 +00:00
Bitcode IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
BugPoint
CodeGen AMDGPU: Fix MUBUF offset bugs affecting llvm.amdgcn.buffer.* intrinsics 2016-06-15 07:13:05 +00:00
DebugInfo [CodeView] Don't emit debuginfo for imported symbols 2016-06-15 00:19:52 +00:00
Examples
ExecutionEngine [MIPS][LLVM-MC] Fix Disassemble of Negative Offset 2016-05-24 09:57:10 +00:00
Feature IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
FileCheck [FileCheck] Add --check-prefixes as a shorthand for multiple --check-prefix options. 2016-06-14 14:28:04 +00:00
Instrumentation [esan|cfrag] Handle complex GEP instr in the cfrag tool 2016-06-10 22:28:55 +00:00
Integer Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
JitListener
LTO IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
LibDriver
Linker ValueMapper: fix assertion when null-mapping a constant for linking metadata 2016-05-28 17:26:03 +00:00
MC AMDGPU/SI: Correctly encode constant expressions 2016-06-15 03:09:39 +00:00
Object [mips] Remove CPU-only triples from llvm-objdump commands. 2016-06-03 10:22:22 +00:00
ObjectYAML [yaml2obj] Sort MachO LinkEdit write operations based on offset 2016-06-03 16:58:05 +00:00
Other IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
SymbolRewriter
TableGen [Target] Introduce a generic opcode for bitwise OR: G_OR. 2016-06-08 16:12:19 +00:00
ThinLTO/X86 [ThinLTO] Resolve LinkOnceAny 2016-05-26 14:16:52 +00:00
Transforms [PM] Port AlignmentFromAssumptions to the new PM. 2016-06-15 06:18:01 +00:00
Unit
Verifier Verifier: check that functions have at most a single !prof attachment. 2016-06-14 23:13:15 +00:00
YAMLParser
tools IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
.clang-format
CMakeLists.txt [cmake] Fix builds with LLVM_ENABLE_PIC=0 2016-06-02 16:29:07 +00:00
TestRunner.sh
lit.cfg test: Be consistent with clang's sanitizer lit config 2016-05-23 23:02:11 +00:00
lit.site.cfg.in Add the printing the Mach-O (__LLVM,__bundle) xar archive file section "verbosely" 2016-05-23 21:34:12 +00:00