Buffer descriptors, which we will eventually want to treat as pointers
in their own address space, are 128-bit-long values that are indexed
by a 32-bit offset. These values consist of 48 bits of pointer and 96
bits of metadata.
This commit amends the data layout string for the GCN+ subtarget to
preperly describe buffer descriptors instead of having them default to
a 64-bit size.
Future work:
- The "offset is 32 bits" part of the data layout description doesn't
make it through IRTranslator, which currently assumes that the pointer
size is the same as the indexing size. This will be resolved in a
separate commit for atomicity.
- emitIntValue() in AsmPrinter cannot handle values of size over 64
bits and crashes as a result. This makes nulls.ll crash - the relevant
line has been commented out pending a fix. ( D143515 was a hack to
make this test pass, initial review feedback suggested landing this
change first.)
This commit also updates all tests that explicitly contain the GCN
layout string to contain its new value.
Depends on D143437
Better to move this to a separate xfail test