1// RUN: llvm-mc -arch=amdgcn -mcpu=gfx90a -show-encoding %s | FileCheck %s --check-prefix=GFX90A
2// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=GFX900 --implicit-check-not=error:
3
4// GFX90A: v_ceil_f64_dpp v[0:1], v[2:3]  row_newbcast:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x30,0x00,0x7e,0x02,0x51,0x01,0xff]
5// GFX900: error: not a valid operand.
6v_ceil_f64 v[0:1], v[2:3] row_newbcast:1
7
8// GFX90A: v_fmac_f64_dpp v[0:1], v[2:3], v[4:5]  row_newbcast:2 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x08,0x00,0x08,0x02,0x52,0x01,0xff]
9// GFX900: error: instruction not supported on this GPU
10v_fmac_f64 v[0:1], v[2:3], v[4:5] row_newbcast:2
11
12// GFX90A: v_cvt_f32_f64_dpp v5, v[0:1]  row_newbcast:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x1e,0x0a,0x7e,0x00,0x5f,0x01,0xff]
13// GFX900: error: not a valid operand.
14v_cvt_f32_f64 v5, v[0:1] row_newbcast:15
15
16// GFX90A: v_cvt_i32_f64_dpp v5, v[0:1]  row_newbcast:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x06,0x0a,0x7e,0x00,0x51,0x01,0xff]
17// GFX900: error: not a valid operand.
18v_cvt_i32_f64 v5, v[0:1] row_newbcast:1
19
20// GFX90A: v_cvt_u32_f64_dpp v5, v[0:1]  row_newbcast:2 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x2a,0x0a,0x7e,0x00,0x52,0x01,0xff]
21// GFX900: error: not a valid operand.
22v_cvt_u32_f64 v5, v[0:1] row_newbcast:2
23
24// GFX90A: v_floor_f64_dpp v[4:5], v[0:1]  row_newbcast:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x34,0x08,0x7e,0x00,0x5f,0x01,0xff]
25// GFX900: error: not a valid operand.
26v_floor_f64 v[4:5], v[0:1] row_newbcast:15
27
28// GFX90A: v_fract_f64_dpp v[4:5], v[0:1]  row_newbcast:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x64,0x08,0x7e,0x00,0x51,0x01,0xff]
29// GFX900: error: not a valid operand.
30v_fract_f64 v[4:5], v[0:1] row_newbcast:1
31
32// GFX90A: v_frexp_exp_i32_f64_dpp v5, v[0:1]  row_newbcast:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x60,0x0a,0x7e,0x00,0x51,0x01,0xff]
33// GFX900: error: not a valid operand.
34v_frexp_exp_i32_f64 v5, v[0:1] row_newbcast:1
35
36// GFX90A: v_frexp_mant_f64_dpp v[4:5], v[0:1]  row_newbcast:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x62,0x08,0x7e,0x00,0x51,0x01,0xff]
37// GFX900: error: not a valid operand.
38v_frexp_mant_f64 v[4:5], v[0:1] row_newbcast:1
39
40// GFX90A: v_rcp_f64_dpp v[4:5], v[0:1]  row_newbcast:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x4a,0x08,0x7e,0x00,0x51,0x01,0xff]
41// GFX900: error: not a valid operand.
42v_rcp_f64 v[4:5], v[0:1] row_newbcast:1
43
44// GFX90A: v_rndne_f64_dpp v[4:5], v[0:1]  row_newbcast:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x32,0x08,0x7e,0x00,0x51,0x01,0xff]
45// GFX900: error: not a valid operand.
46v_rndne_f64 v[4:5], v[0:1] row_newbcast:1
47
48// GFX90A: v_rsq_f64_dpp v[4:5], v[0:1]  row_newbcast:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x4c,0x08,0x7e,0x00,0x51,0x01,0xff]
49// GFX900: error: not a valid operand.
50v_rsq_f64 v[4:5], v[0:1] row_newbcast:1
51
52// GFX90A: v_sqrt_f64_dpp v[4:5], v[0:1]  row_newbcast:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x50,0x08,0x7e,0x00,0x51,0x01,0xff]
53// GFX900: error: not a valid operand.
54v_sqrt_f64 v[4:5], v[0:1] row_newbcast:1
55
56// GFX90A: v_trunc_f64_dpp v[4:5], v[0:1]  row_newbcast:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x2e,0x08,0x7e,0x00,0x51,0x01,0xff]
57// GFX900: error: not a valid operand.
58v_trunc_f64 v[4:5], v[0:1] row_newbcast:1
59