1// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=NOGFX9 --implicit-check-not=error: 2 3//---------------------------------------------------------------------------// 4// lds_direct may be used only with vector ALU instructions 5//---------------------------------------------------------------------------// 6 7s_and_b32 s2, lds_direct, s1 8// NOGFX9: error: invalid operand for instruction 9 10//---------------------------------------------------------------------------// 11// lds_direct may not be used with "REV" opcodes 12//---------------------------------------------------------------------------// 13 14v_ashrrev_i16 v0, lds_direct, v0 15// NOGFX9: error: invalid use of lds_direct 16 17v_ashrrev_i32 v0, lds_direct, v0 18// NOGFX9: error: invalid use of lds_direct 19 20v_lshlrev_b16 v0, lds_direct, v0 21// NOGFX9: error: invalid use of lds_direct 22 23v_lshlrev_b32 v0, lds_direct, v0 24// NOGFX9: error: invalid use of lds_direct 25 26v_lshrrev_b16 v0, lds_direct, v0 27// NOGFX9: error: invalid use of lds_direct 28 29v_lshrrev_b32 v0, lds_direct, v0 30// NOGFX9: error: invalid use of lds_direct 31 32v_pk_ashrrev_i16 v0, lds_direct, v0 33// NOGFX9: error: invalid use of lds_direct 34 35v_pk_lshlrev_b16 v0, lds_direct, v0 36// NOGFX9: error: invalid use of lds_direct 37 38v_pk_lshrrev_b16 v0, lds_direct, v0 39// NOGFX9: error: invalid use of lds_direct 40 41v_subbrev_co_u32 v0, vcc, src_lds_direct, v0, vcc 42// NOGFX9: error: invalid use of lds_direct 43 44v_subrev_co_u32 v0, vcc, src_lds_direct, v0 45// NOGFX9: error: invalid use of lds_direct 46 47v_subrev_f16 v0, src_lds_direct, v0 48// NOGFX9: error: invalid use of lds_direct 49 50v_subrev_u16 v0, src_lds_direct, v0 51// NOGFX9: error: invalid use of lds_direct 52 53v_subrev_u32 v0, src_lds_direct, v0 54// NOGFX9: error: invalid use of lds_direct 55 56//---------------------------------------------------------------------------// 57// lds_direct may not be used with v_writelane_b32 for VI/GFX9 58//---------------------------------------------------------------------------// 59 60v_writelane_b32 v0, lds_direct, s0 61// NOGFX9: error: operands are not valid for this GPU or mode 62 63//---------------------------------------------------------------------------// 64// lds_direct cannot be used with 64-bit and larger operands 65//---------------------------------------------------------------------------// 66 67v_add_f64 v[0:1], lds_direct, v[0:1] 68// NOGFX9: error: invalid operand for instruction 69 70//---------------------------------------------------------------------------// 71// Only SRC0 may specify lds_direct 72//---------------------------------------------------------------------------// 73 74v_add_i32 v0, v0, lds_direct 75// NOGFX9: error: invalid use of lds_direct 76 77v_add_i32 lds_direct, v0, v0 78// NOGFX9: error: invalid operand for instruction 79 80v_fma_f32 v0, v0, v0, lds_direct 81// NOGFX9: error: invalid use of lds_direct 82