101 lines · plain
1// RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOGCN --implicit-check-not=error:2// RUN: not llvm-mc -triple=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=NOGCN --implicit-check-not=error:3// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=NOGFX9 --implicit-check-not=error:4// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx90a %s 2>&1 | FileCheck %s --check-prefix=NOGFX90A --implicit-check-not=error:5 6//===----------------------------------------------------------------------===//7// Image Load/Store8//===----------------------------------------------------------------------===//9 10image_load v[4:6], v[237:240], s[28:35] dmask:0x7 tfe11// NOGCN: error: image data size does not match dmask and tfe12// NOGFX9: error: image data size does not match dmask, d16 and tfe13// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction14 15image_load v[4:5], v[236:239], s[28:35] dmask:0x716// NOGCN: error: image data size does not match dmask and tfe17// NOGFX9: error: image data size does not match dmask, d16 and tfe18// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask and d1619 20image_store v[4:7], v[236:239], s[28:35] dmask:0x721// NOGCN: error: image data size does not match dmask and tfe22// NOGFX9: error: image data size does not match dmask, d16 and tfe23// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask and d1624 25image_store v[4:7], v[236:239], s[28:35] dmask:0xe26// NOGCN: error: image data size does not match dmask and tfe27// NOGFX9: error: image data size does not match dmask, d16 and tfe28// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask and d1629 30image_load v4, v[236:239], s[28:35] tfe31// NOGCN: error: image data size does not match dmask and tfe32// NOGFX9: error: image data size does not match dmask, d16 and tfe33// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction34 35//===----------------------------------------------------------------------===//36// Image Sample37//===----------------------------------------------------------------------===//38 39image_sample v[192:194], v[236:239], s[28:35], s[4:7] dmask:0x7 tfe40// NOGCN: error: image data size does not match dmask and tfe41// NOGFX9: error: image data size does not match dmask, d16 and tfe42// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction43 44image_sample v[192:194], v[236:239], s[28:35], s[4:7] dmask:0x345// NOGCN: error: image data size does not match dmask and tfe46// NOGFX9: error: image data size does not match dmask, d16 and tfe47// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask and d1648 49image_sample v[192:194], v[236:239], s[28:35], s[4:7] dmask:0xf50// NOGCN: error: image data size does not match dmask and tfe51// NOGFX9: error: image data size does not match dmask, d16 and tfe52// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask and d1653 54//===----------------------------------------------------------------------===//55// Image Atomics56//===----------------------------------------------------------------------===//57 58image_atomic_add v252, v2, s[8:15] dmask:0x1 tfe59// NOGCN: error: image data size does not match dmask and tfe60// NOGFX9: error: image data size does not match dmask and tfe61// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction62 63image_atomic_add v[6:7], v255, s[8:15] dmask:0x264// NOGCN: error: image data size does not match dmask and tfe65// NOGFX9: error: image data size does not match dmask and tfe66// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask67 68image_atomic_add v[6:7], v255, s[8:15] dmask:0xf69// NOGCN: error: image data size does not match dmask and tfe70// NOGFX9: error: image data size does not match dmask and tfe71// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: image data size does not match dmask72 73image_atomic_cmpswap v[4:7], v[192:195], s[28:35] dmask:0xf tfe74// NOGCN: error: image data size does not match dmask and tfe75// NOGFX9: error: image data size does not match dmask and tfe76// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction77 78image_atomic_add v252, v2, s[8:15]79// NOGCN: error: invalid atomic image dmask80// NOGFX9: error: invalid atomic image dmask81// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid atomic image dmask82 83image_atomic_add v[6:7], v255, s[8:15] dmask:0x2 tfe84// NOGCN: error: invalid atomic image dmask85// NOGFX9: error: invalid atomic image dmask86// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction87 88image_atomic_cmpswap v[4:7], v[192:195], s[28:35] dmask:0xe tfe89// NOGCN: error: invalid atomic image dmask90// NOGFX9: error: invalid atomic image dmask91// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: invalid operand for instruction92 93//===----------------------------------------------------------------------===//94// Image Gather95//===----------------------------------------------------------------------===//96 97image_gather4_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x398// NOGCN: error: invalid image_gather dmask: only one bit must be set99// NOGFX9: error: invalid image_gather dmask: only one bit must be set100// NOGFX90A: :[[@LINE-3]]:{{[0-9]+}}: error: instruction not supported on this GPU101