mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-26 22:26:16 +00:00
R600/SI: Add check for low 32 bits of encoding to mubuf tests
There are no variable values like registers encoded in the low 32 bits of MUBUF instructions, so it is relatively easy to check these bits, and it will help prevent us from introducing encoding bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215397 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
728d0e4218
commit
68e9ebbe44
@ -6,7 +6,7 @@
|
||||
|
||||
; MUBUF load with an immediate byte offset that fits into 12-bits
|
||||
; CHECK-LABEL: @mubuf_load0
|
||||
; CHECK: BUFFER_LOAD_DWORD v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0x4 ; encoding: [0x04,0x80
|
||||
; CHECK: BUFFER_LOAD_DWORD v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0x4 ; encoding: [0x04,0x80,0x30,0xe0
|
||||
define void @mubuf_load0(i32 addrspace(1)* %out, i32 addrspace(1)* %in) {
|
||||
entry:
|
||||
%0 = getelementptr i32 addrspace(1)* %in, i64 1
|
||||
@ -17,7 +17,7 @@ entry:
|
||||
|
||||
; MUBUF load with the largest possible immediate offset
|
||||
; CHECK-LABEL: @mubuf_load1
|
||||
; CHECK: BUFFER_LOAD_UBYTE v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0xfff ; encoding: [0xff,0x8f
|
||||
; CHECK: BUFFER_LOAD_UBYTE v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0xfff ; encoding: [0xff,0x8f,0x20,0xe0
|
||||
define void @mubuf_load1(i8 addrspace(1)* %out, i8 addrspace(1)* %in) {
|
||||
entry:
|
||||
%0 = getelementptr i8 addrspace(1)* %in, i64 4095
|
||||
@ -40,7 +40,7 @@ entry:
|
||||
; MUBUF load with a 12-bit immediate offset and a register offset
|
||||
; CHECK-LABEL: @mubuf_load3
|
||||
; CHECK-NOT: ADD
|
||||
; CHECK: BUFFER_LOAD_DWORD v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0x4 ; encoding: [0x04,0x80
|
||||
; CHECK: BUFFER_LOAD_DWORD v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0x4 ; encoding: [0x04,0x80,0x30,0xe0
|
||||
define void @mubuf_load3(i32 addrspace(1)* %out, i32 addrspace(1)* %in, i64 %offset) {
|
||||
entry:
|
||||
%0 = getelementptr i32 addrspace(1)* %in, i64 %offset
|
||||
@ -56,7 +56,7 @@ entry:
|
||||
|
||||
; MUBUF store with an immediate byte offset that fits into 12-bits
|
||||
; CHECK-LABEL: @mubuf_store0
|
||||
; CHECK: BUFFER_STORE_DWORD v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0x4 ; encoding: [0x04,0x80
|
||||
; CHECK: BUFFER_STORE_DWORD v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0x4 ; encoding: [0x04,0x80,0x70,0xe0
|
||||
define void @mubuf_store0(i32 addrspace(1)* %out) {
|
||||
entry:
|
||||
%0 = getelementptr i32 addrspace(1)* %out, i64 1
|
||||
@ -66,7 +66,7 @@ entry:
|
||||
|
||||
; MUBUF store with the largest possible immediate offset
|
||||
; CHECK-LABEL: @mubuf_store1
|
||||
; CHECK: BUFFER_STORE_BYTE v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0xfff ; encoding: [0xff,0x8f
|
||||
; CHECK: BUFFER_STORE_BYTE v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0xfff ; encoding: [0xff,0x8f,0x60,0xe0
|
||||
|
||||
define void @mubuf_store1(i8 addrspace(1)* %out) {
|
||||
entry:
|
||||
@ -77,7 +77,7 @@ entry:
|
||||
|
||||
; MUBUF store with an immediate byte offset that doesn't fit into 12-bits
|
||||
; CHECK-LABEL: @mubuf_store2
|
||||
; CHECK: BUFFER_STORE_DWORD v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 ; encoding: [0x00,0x80
|
||||
; CHECK: BUFFER_STORE_DWORD v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 ; encoding: [0x00,0x80,0x70,0xe0
|
||||
define void @mubuf_store2(i32 addrspace(1)* %out) {
|
||||
entry:
|
||||
%0 = getelementptr i32 addrspace(1)* %out, i64 1024
|
||||
@ -88,7 +88,7 @@ entry:
|
||||
; MUBUF store with a 12-bit immediate offset and a register offset
|
||||
; CHECK-LABEL: @mubuf_store3
|
||||
; CHECK-NOT: ADD
|
||||
; CHECK: BUFFER_STORE_DWORD v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0x4 ; encoding: [0x04,0x80
|
||||
; CHECK: BUFFER_STORE_DWORD v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0x4 ; encoding: [0x04,0x80,0x70,0xe0
|
||||
define void @mubuf_store3(i32 addrspace(1)* %out, i64 %offset) {
|
||||
entry:
|
||||
%0 = getelementptr i32 addrspace(1)* %out, i64 %offset
|
||||
|
Loading…
Reference in New Issue
Block a user