mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-15 12:09:51 +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. llvm-svn: 215397
This commit is contained in:
parent
93ba12f163
commit
48194cdd81
@ -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