99 lines · plain
1// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1251 -show-encoding %s | FileCheck --check-prefixes=GFX1251 %s2// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1250 -show-encoding %s 2>&1 | FileCheck --check-prefix=GFX1250-ERR --implicit-check-not=error: --strict-whitespace %s3 4v_mov_b64 v[4:5], v[2:3] row_share:0 row_mask:0xf bank_mask:0xf5// GFX1251: v_mov_b64_dpp v[4:5], v[2:3] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x3a,0x08,0x7e,0x02,0x50,0x01,0xff]6// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.7// GFX1250-ERR-NEXT:{{^}}v_mov_b64 v[4:5], v[2:3] row_share:0 row_mask:0xf bank_mask:0xf8// GFX1250-ERR-NEXT:{{^}} ^9 10v_mov_b64 v[4:5], v[2:3] row_share:15 row_mask:0x0 bank_mask:0x111// GFX1251: v_mov_b64_dpp v[4:5], v[2:3] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x3a,0x08,0x7e,0x02,0x5f,0x01,0x01]12// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.13// GFX1250-ERR-NEXT:{{^}}v_mov_b64 v[4:5], v[2:3] row_share:15 row_mask:0x0 bank_mask:0x114// GFX1250-ERR-NEXT:{{^}} ^15 16v_mov_b64 v[254:255], v[254:255] row_share:3 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:117// GFX1251: v_mov_b64_dpp v[254:255], v[254:255] row_share:3 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0x3a,0xfc,0x7f,0xfe,0x53,0x05,0x30]18// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.19// GFX1250-ERR-NEXT:{{^}}v_mov_b64 v[254:255], v[254:255] row_share:3 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:120// GFX1250-ERR-NEXT:{{^}} ^21 22v_cvt_i32_f64 v2, v[4:5] row_share:123// GFX1251: v_cvt_i32_f64_dpp v2, v[4:5] row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x06,0x04,0x7e,0x04,0x51,0x01,0xff]24// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.25// GFX1250-ERR-NEXT:{{^}}v_cvt_i32_f64 v2, v[4:5] row_share:126// GFX1250-ERR-NEXT:{{^}} ^27 28v_cvt_f64_i32 v[4:5], v2 row_share:129// GFX1251: v_cvt_f64_i32_dpp v[4:5], v2 row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x08,0x08,0x7e,0x02,0x51,0x01,0xff]30// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.31// GFX1250-ERR-NEXT:{{^}}v_cvt_f64_i32 v[4:5], v2 row_share:132// GFX1250-ERR-NEXT:{{^}} ^33 34v_cvt_f32_f64 v2, v[4:5] row_share:135// GFX1251: v_cvt_f32_f64_dpp v2, v[4:5] row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x1e,0x04,0x7e,0x04,0x51,0x01,0xff]36// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.37// GFX1250-ERR-NEXT:{{^}}v_cvt_f32_f64 v2, v[4:5] row_share:138// GFX1250-ERR-NEXT:{{^}} ^39 40v_cvt_f64_f32 v[4:5], v2 row_share:141// GFX1251: v_cvt_f64_f32_dpp v[4:5], v2 row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x20,0x08,0x7e,0x02,0x51,0x01,0xff]42// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.43// GFX1250-ERR-NEXT:{{^}}v_cvt_f64_f32 v[4:5], v2 row_share:144// GFX1250-ERR-NEXT:{{^}} ^45 46v_cvt_u32_f64 v2, v[4:5] row_share:147// GFX1251: v_cvt_u32_f64_dpp v2, v[4:5] row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x2a,0x04,0x7e,0x04,0x51,0x01,0xff]48// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.49// GFX1250-ERR-NEXT:{{^}}v_cvt_u32_f64 v2, v[4:5] row_share:150// GFX1250-ERR-NEXT:{{^}} ^51 52v_cvt_f64_u32 v[4:5], v2 row_share:153// GFX1251: v_cvt_f64_u32_dpp v[4:5], v2 row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x2c,0x08,0x7e,0x02,0x51,0x01,0xff]54// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.55// GFX1250-ERR-NEXT:{{^}}v_cvt_f64_u32 v[4:5], v2 row_share:156// GFX1250-ERR-NEXT:{{^}} ^57 58v_trunc_f64 v[2:3], v[4:5] row_share:159// GFX1251: v_trunc_f64_dpp v[2:3], v[4:5] row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x2e,0x04,0x7e,0x04,0x51,0x01,0xff]60// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.61// GFX1250-ERR-NEXT:{{^}}v_trunc_f64 v[2:3], v[4:5] row_share:162// GFX1250-ERR-NEXT:{{^}} ^63 64v_ceil_f64 v[2:3], v[4:5] row_share:165// GFX1251: v_ceil_f64_dpp v[2:3], v[4:5] row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x30,0x04,0x7e,0x04,0x51,0x01,0xff]66// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.67// GFX1250-ERR-NEXT:{{^}}v_ceil_f64 v[2:3], v[4:5] row_share:168// GFX1250-ERR-NEXT:{{^}} ^69 70v_rndne_f64 v[2:3], v[4:5] row_share:171// GFX1251: v_rndne_f64_dpp v[2:3], v[4:5] row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x32,0x04,0x7e,0x04,0x51,0x01,0xff]72// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.73// GFX1250-ERR-NEXT:{{^}}v_rndne_f64 v[2:3], v[4:5] row_share:174// GFX1250-ERR-NEXT:{{^}} ^75 76v_floor_f64 v[2:3], v[4:5] row_share:177// GFX1251: v_floor_f64_dpp v[2:3], v[4:5] row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x34,0x04,0x7e,0x04,0x51,0x01,0xff]78// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.79// GFX1250-ERR-NEXT:{{^}}v_floor_f64 v[2:3], v[4:5] row_share:180// GFX1250-ERR-NEXT:{{^}} ^81 82v_frexp_exp_i32_f64 v2, v[4:5] row_share:183// GFX1251: v_frexp_exp_i32_f64_dpp v2, v[4:5] row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x78,0x04,0x7e,0x04,0x51,0x01,0xff]84// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.85// GFX1250-ERR-NEXT:{{^}}v_frexp_exp_i32_f64 v2, v[4:5] row_share:186// GFX1250-ERR-NEXT:{{^}} ^87 88v_frexp_mant_f64 v[2:3], v[4:5] row_share:189// GFX1251: v_frexp_mant_f64_dpp v[2:3], v[4:5] row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x7a,0x04,0x7e,0x04,0x51,0x01,0xff]90// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.91// GFX1250-ERR-NEXT:{{^}}v_frexp_mant_f64 v[2:3], v[4:5] row_share:192// GFX1250-ERR-NEXT:{{^}} ^93 94v_fract_f64 v[2:3], v[4:5] row_share:195// GFX1251: v_fract_f64_dpp v[2:3], v[4:5] row_share:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x7c,0x04,0x7e,0x04,0x51,0x01,0xff]96// GFX1250-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: not a valid operand.97// GFX1250-ERR-NEXT:{{^}}v_fract_f64 v[2:3], v[4:5] row_share:198// GFX1250-ERR-NEXT:{{^}} ^99