2016-02-26 10:51:05 +01:00
|
|
|
// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s --check-prefix=SICI
|
2017-08-07 20:30:35 +02:00
|
|
|
// RUN: llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck %s --check-prefix=SICI
|
2016-02-26 10:51:05 +01:00
|
|
|
// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck %s --check-prefix=VI
|
|
|
|
|
2018-01-19 14:49:53 +01:00
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// Image Load/Store
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
2016-02-26 10:51:05 +01:00
|
|
|
image_load v[4:6], v[237:240], s[28:35] dmask:0x7 unorm
|
|
|
|
// SICI: image_load v[4:6], v[237:240], s[28:35] dmask:0x7 unorm ; encoding: [0x00,0x17,0x00,0xf0,0xed,0x04,0x07,0x00]
|
|
|
|
// VI: image_load v[4:6], v[237:240], s[28:35] dmask:0x7 unorm ; encoding: [0x00,0x17,0x00,0xf0,0xed,0x04,0x07,0x00]
|
|
|
|
|
|
|
|
image_store v[193:195], v[237:240], s[28:35] dmask:0x7 unorm
|
|
|
|
// SICI: image_store v[193:195], v[237:240], s[28:35] dmask:0x7 unorm ; encoding: [0x00,0x17,0x20,0xf0,0xed,0xc1,0x07,0x00]
|
2018-01-19 14:49:53 +01:00
|
|
|
// VI: image_store v[193:195], v[237:240], s[28:35] dmask:0x7 unorm ; encoding: [0x00,0x17,0x20,0xf0,0xed,0xc1,0x07,0x00]
|
|
|
|
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// Image Sample
|
|
|
|
//===----------------------------------------------------------------------===//
|
2016-02-26 10:51:05 +01:00
|
|
|
|
|
|
|
image_sample v[193:195], v[237:240], s[28:35], s[4:7] dmask:0x7 unorm
|
|
|
|
// SICI: image_sample v[193:195], v[237:240], s[28:35], s[4:7] dmask:0x7 unorm ; encoding: [0x00,0x17,0x80,0xf0,0xed,0xc1,0x27,0x00]
|
2018-01-19 14:49:53 +01:00
|
|
|
// VI: image_sample v[193:195], v[237:240], s[28:35], s[4:7] dmask:0x7 unorm ; encoding: [0x00,0x17,0x80,0xf0,0xed,0xc1,0x27,0x00]
|
|
|
|
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// Image Atomics
|
|
|
|
//===----------------------------------------------------------------------===//
|
2016-03-04 11:39:50 +01:00
|
|
|
|
|
|
|
image_atomic_add v4, v[192:195], s[28:35] dmask:0x1 unorm glc
|
2018-01-19 14:49:53 +01:00
|
|
|
// SICI: image_atomic_add v4, v[192:195], s[28:35] dmask:0x1 unorm glc ; encoding: [0x00,0x31,0x44,0xf0,0xc0,0x04,0x07,0x00]
|
|
|
|
// VI: image_atomic_add v4, v[192:195], s[28:35] dmask:0x1 unorm glc ; encoding: [0x00,0x31,0x48,0xf0,0xc0,0x04,0x07,0x00]
|
|
|
|
|
2018-01-26 16:43:29 +01:00
|
|
|
image_atomic_add v252, v2, s[8:15] dmask:0x1 unorm
|
|
|
|
// SICI: image_atomic_add v252, v2, s[8:15] dmask:0x1 unorm ; encoding: [0x00,0x11,0x44,0xf0,0x02,0xfc,0x02,0x00]
|
|
|
|
// VI: image_atomic_add v252, v2, s[8:15] dmask:0x1 unorm ; encoding: [0x00,0x11,0x48,0xf0,0x02,0xfc,0x02,0x00]
|
2018-01-19 14:49:53 +01:00
|
|
|
|
2018-01-26 16:43:29 +01:00
|
|
|
image_atomic_add v[6:7], v255, s[8:15] dmask:0x3
|
|
|
|
// SICI: image_atomic_add v[6:7], v255, s[8:15] dmask:0x3 ; encoding: [0x00,0x03,0x44,0xf0,0xff,0x06,0x02,0x00]
|
|
|
|
// VI: image_atomic_add v[6:7], v255, s[8:15] dmask:0x3 ; encoding: [0x00,0x03,0x48,0xf0,0xff,0x06,0x02,0x00]
|
2018-01-19 14:49:53 +01:00
|
|
|
|
2018-01-26 16:43:29 +01:00
|
|
|
image_atomic_add v7, v3, s[0:7] dmask:0x1 glc
|
|
|
|
// SICI: image_atomic_add v7, v3, s[0:7] dmask:0x1 glc ; encoding: [0x00,0x21,0x44,0xf0,0x03,0x07,0x00,0x00]
|
|
|
|
// VI: image_atomic_add v7, v3, s[0:7] dmask:0x1 glc ; encoding: [0x00,0x21,0x48,0xf0,0x03,0x07,0x00,0x00]
|
2018-01-19 14:49:53 +01:00
|
|
|
|
2018-01-26 16:43:29 +01:00
|
|
|
image_atomic_add v8, v4, s[8:15] dmask:0x1 slc
|
|
|
|
// SICI: image_atomic_add v8, v4, s[8:15] dmask:0x1 slc ; encoding: [0x00,0x01,0x44,0xf2,0x04,0x08,0x02,0x00]
|
|
|
|
// VI: image_atomic_add v8, v4, s[8:15] dmask:0x1 slc ; encoding: [0x00,0x01,0x48,0xf2,0x04,0x08,0x02,0x00]
|
2018-01-19 14:49:53 +01:00
|
|
|
|
|
|
|
image_atomic_add v9, v5, s[8:15] dmask:0x1 unorm glc slc lwe da
|
|
|
|
// SICI: image_atomic_add v9, v5, s[8:15] dmask:0x1 unorm glc slc lwe da ; encoding: [0x00,0x71,0x46,0xf2,0x05,0x09,0x02,0x00]
|
|
|
|
// VI: image_atomic_add v9, v5, s[8:15] dmask:0x1 unorm glc slc lwe da ; encoding: [0x00,0x71,0x4a,0xf2,0x05,0x09,0x02,0x00]
|
|
|
|
|
|
|
|
image_atomic_add v10, v6, s[8:15] dmask:0x1 lwe
|
|
|
|
// SICI: image_atomic_add v10, v6, s[8:15] dmask:0x1 lwe ; encoding: [0x00,0x01,0x46,0xf0,0x06,0x0a,0x02,0x00]
|
|
|
|
// VI: image_atomic_add v10, v6, s[8:15] dmask:0x1 lwe ; encoding: [0x00,0x01,0x4a,0xf0,0x06,0x0a,0x02,0x00]
|
|
|
|
|
|
|
|
image_atomic_add v11, v7, s[8:15] dmask:0x1 da
|
|
|
|
// SICI: image_atomic_add v11, v7, s[8:15] dmask:0x1 da ; encoding: [0x00,0x41,0x44,0xf0,0x07,0x0b,0x02,0x00]
|
|
|
|
// VI: image_atomic_add v11, v7, s[8:15] dmask:0x1 da ; encoding: [0x00,0x41,0x48,0xf0,0x07,0x0b,0x02,0x00]
|
2016-03-04 11:39:50 +01:00
|
|
|
|
|
|
|
image_atomic_swap v4, v[192:195], s[28:35] dmask:0x1 unorm glc
|
2018-01-19 14:49:53 +01:00
|
|
|
// SICI: image_atomic_swap v4, v[192:195], s[28:35] dmask:0x1 unorm glc ; encoding: [0x00,0x31,0x3c,0xf0,0xc0,0x04,0x07,0x00]
|
|
|
|
// VI: image_atomic_swap v4, v[192:195], s[28:35] dmask:0x1 unorm glc ; encoding: [0x00,0x31,0x40,0xf0,0xc0,0x04,0x07,0x00]
|
2016-03-04 11:39:50 +01:00
|
|
|
|
2018-01-26 16:43:29 +01:00
|
|
|
image_atomic_cmpswap v[4:5], v[192:195], s[28:35] dmask:0x3 unorm glc
|
|
|
|
// SICI: image_atomic_cmpswap v[4:5], v[192:195], s[28:35] dmask:0x3 unorm glc ; encoding: [0x00,0x33,0x40,0xf0,0xc0,0x04,0x07,0x00]
|
|
|
|
// VI: image_atomic_cmpswap v[4:5], v[192:195], s[28:35] dmask:0x3 unorm glc ; encoding: [0x00,0x33,0x44,0xf0,0xc0,0x04,0x07,0x00]
|
|
|
|
|
|
|
|
image_atomic_cmpswap v[4:7], v[192:195], s[28:35] dmask:0xf unorm glc
|
|
|
|
// SICI: image_atomic_cmpswap v[4:7], v[192:195], s[28:35] dmask:0xf unorm glc ; encoding: [0x00,0x3f,0x40,0xf0,0xc0,0x04,0x07,0x00]
|
|
|
|
// VI: image_atomic_cmpswap v[4:7], v[192:195], s[28:35] dmask:0xf unorm glc ; encoding: [0x00,0x3f,0x44,0xf0,0xc0,0x04,0x07,0x00]
|