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