1# RUN: llvm-mc -triple=amdgcn -mcpu=gfx908 -disassemble -show-encoding < %s | FileCheck %s 2 3# CHECK: buffer_atomic_add_f32 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x03] 40xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x03 5 6# CHECK: buffer_atomic_add_f32 v255, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x34,0xe1,0x00,0xff,0x02,0x03] 70xff,0x0f,0x34,0xe1,0x00,0xff,0x02,0x03 8 9# CHECK: buffer_atomic_add_f32 v5, off, s[12:15], s3 offset:4095 ; encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x03,0x03] 100xff,0x0f,0x34,0xe1,0x00,0x05,0x03,0x03 11 12# CHECK: buffer_atomic_add_f32 v5, off, s[96:99], s3 offset:4095 ; encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x18,0x03] 130xff,0x0f,0x34,0xe1,0x00,0x05,0x18,0x03 14 15# CHECK: buffer_atomic_add_f32 v5, off, s[8:11], s101 offset:4095 ; encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x65] 160xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x65 17 18# CHECK: buffer_atomic_add_f32 v5, off, s[8:11], m0 offset:4095 ; encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x7c] 190xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x7c 20 21# CHECK: buffer_atomic_add_f32 v5, off, s[8:11], 0 offset:4095 ; encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x80] 220xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x80 23 24# CHECK: buffer_atomic_add_f32 v5, off, s[8:11], -1 offset:4095 ; encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0xc1] 250xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0xc1 26 27# CHECK: buffer_atomic_add_f32 v5, v0, s[8:11], s3 idxen offset:4095 ; encoding: [0xff,0x2f,0x34,0xe1,0x00,0x05,0x02,0x03] 280xff,0x2f,0x34,0xe1,0x00,0x05,0x02,0x03 29 30# CHECK: buffer_atomic_add_f32 v5, v0, s[8:11], s3 offen offset:4095 ; encoding: [0xff,0x1f,0x34,0xe1,0x00,0x05,0x02,0x03] 310xff,0x1f,0x34,0xe1,0x00,0x05,0x02,0x03 32 33# CHECK: buffer_atomic_add_f32 v5, off, s[8:11], s3 ; encoding: [0x00,0x00,0x34,0xe1,0x00,0x05,0x02,0x03] 340x00,0x00,0x34,0xe1,0x00,0x05,0x02,0x03 35 36# CHECK: buffer_atomic_add_f32 v5, off, s[8:11], s3 ; encoding: [0x00,0x00,0x34,0xe1,0x00,0x05,0x02,0x03] 370x00,0x00,0x34,0xe1,0x00,0x05,0x02,0x03 38 39# CHECK: buffer_atomic_add_f32 v5, off, s[8:11], s3 offset:7 ; encoding: [0x07,0x00,0x34,0xe1,0x00,0x05,0x02,0x03] 400x07,0x00,0x34,0xe1,0x00,0x05,0x02,0x03 41 42# CHECK: buffer_atomic_add_f32 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x0f,0x36,0xe1,0x00,0x05,0x02,0x03] 430xff,0x0f,0x36,0xe1,0x00,0x05,0x02,0x03 44 45# CHECK: buffer_atomic_pk_add_f16 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0x03] 460xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0x03 47 48# CHECK: buffer_atomic_pk_add_f16 v255, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x38,0xe1,0x00,0xff,0x02,0x03] 490xff,0x0f,0x38,0xe1,0x00,0xff,0x02,0x03 50 51# CHECK: buffer_atomic_pk_add_f16 v5, off, s[12:15], s3 offset:4095 ; encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x03,0x03] 520xff,0x0f,0x38,0xe1,0x00,0x05,0x03,0x03 53 54# CHECK: buffer_atomic_pk_add_f16 v5, off, s[96:99], s3 offset:4095 ; encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x18,0x03] 550xff,0x0f,0x38,0xe1,0x00,0x05,0x18,0x03 56 57# CHECK: buffer_atomic_pk_add_f16 v5, off, s[8:11], s101 offset:4095 ; encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0x65] 580xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0x65 59 60# CHECK: buffer_atomic_pk_add_f16 v5, off, s[8:11], m0 offset:4095 ; encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0x7c] 610xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0x7c 62 63# CHECK: buffer_atomic_pk_add_f16 v5, off, s[8:11], 0 offset:4095 ; encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0x80] 640xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0x80 65 66# CHECK: buffer_atomic_pk_add_f16 v5, off, s[8:11], -1 offset:4095 ; encoding: [0xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0xc1] 670xff,0x0f,0x38,0xe1,0x00,0x05,0x02,0xc1 68 69# CHECK: buffer_atomic_pk_add_f16 v5, v0, s[8:11], s3 idxen offset:4095 ; encoding: [0xff,0x2f,0x38,0xe1,0x00,0x05,0x02,0x03] 700xff,0x2f,0x38,0xe1,0x00,0x05,0x02,0x03 71 72# CHECK: buffer_atomic_pk_add_f16 v5, v0, s[8:11], s3 offen offset:4095 ; encoding: [0xff,0x1f,0x38,0xe1,0x00,0x05,0x02,0x03] 730xff,0x1f,0x38,0xe1,0x00,0x05,0x02,0x03 74 75# CHECK: buffer_atomic_pk_add_f16 v5, off, s[8:11], s3 ; encoding: [0x00,0x00,0x38,0xe1,0x00,0x05,0x02,0x03] 760x00,0x00,0x38,0xe1,0x00,0x05,0x02,0x03 77 78# CHECK: buffer_atomic_pk_add_f16 v5, off, s[8:11], s3 ; encoding: [0x00,0x00,0x38,0xe1,0x00,0x05,0x02,0x03] 790x00,0x00,0x38,0xe1,0x00,0x05,0x02,0x03 80 81# CHECK: buffer_atomic_pk_add_f16 v5, off, s[8:11], s3 offset:7 ; encoding: [0x07,0x00,0x38,0xe1,0x00,0x05,0x02,0x03] 820x07,0x00,0x38,0xe1,0x00,0x05,0x02,0x03 83 84# CHECK: buffer_atomic_pk_add_f16 v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x0f,0x3a,0xe1,0x00,0x05,0x02,0x03] 850xff,0x0f,0x3a,0xe1,0x00,0x05,0x02,0x03 86 87# CHECK: global_atomic_add_f32 v[1:2], v2, off offset:-1 ; encoding: [0xff,0x9f,0x34,0xdd,0x01,0x02,0x7f,0x00] 880xff,0x9f,0x34,0xdd,0x01,0x02,0x7f,0x00 89 90# CHECK: global_atomic_add_f32 v[1:2], v255, off offset:-1 ; encoding: [0xff,0x9f,0x34,0xdd,0x01,0xff,0x7f,0x00] 910xff,0x9f,0x34,0xdd,0x01,0xff,0x7f,0x00 92 93# CHECK: global_atomic_add_f32 v[1:2], v2, off ; encoding: [0x00,0x80,0x34,0xdd,0x01,0x02,0x7f,0x00] 940x00,0x80,0x34,0xdd,0x01,0x02,0x7f,0x00 95 96# CHECK: global_atomic_pk_add_f16 v[1:2], v2, off offset:-1 ; encoding: [0xff,0x9f,0x38,0xdd,0x01,0x02,0x7f,0x00] 970xff,0x9f,0x38,0xdd,0x01,0x02,0x7f,0x00 98 99# CHECK: global_atomic_pk_add_f16 v[1:2], v255, off offset:-1 ; encoding: [0xff,0x9f,0x38,0xdd,0x01,0xff,0x7f,0x00] 1000xff,0x9f,0x38,0xdd,0x01,0xff,0x7f,0x00 101 102# CHECK: global_atomic_pk_add_f16 v[1:2], v2, off ; encoding: [0x00,0x80,0x38,0xdd,0x01,0x02,0x7f,0x00] 1030x00,0x80,0x38,0xdd,0x01,0x02,0x7f,0x00 104