brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.0 KiB · a84ada2 Raw
169 lines · plain
1// RUN: llvm-mc -triple=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 %s2//3// Test op_sel/op_sel_hi4//5 6v_pk_add_u16 v1, v2, v37// GFX9: v_pk_add_u16 v1, v2, v3 ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x18]8 9v_pk_add_u16 v1, v2, v3 op_sel:[0,0]10// GFX9: v_pk_add_u16 v1, v2, v3 ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x18]11 12v_pk_add_u16 v1, v2, v3 op_sel_hi:[1,1]13// GFX9: v_pk_add_u16 v1, v2, v3 ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x18]14 15v_pk_add_u16 v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1]16// GFX9: v_pk_add_u16 v1, v2, v3 ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x18]17 18v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,0]19// GFX9: v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,0] ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x00]20 21v_pk_add_u16 v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0]22// GFX9: v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,0] ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x00]23 24v_pk_add_u16 v1, v2, v3 op_sel:[1,0]25// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,0] ; encoding: [0x01,0x48,0x8a,0xd3,0x02,0x07,0x02,0x18]26 27v_pk_add_u16 v1, v2, v3 op_sel:[0,1]28// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[0,1] ; encoding: [0x01,0x50,0x8a,0xd3,0x02,0x07,0x02,0x18]29 30v_pk_add_u16 v1, v2, v3 op_sel:[1,1]31// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,1] ; encoding: [0x01,0x58,0x8a,0xd3,0x02,0x07,0x02,0x18]32 33v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,1]34// GFX9: v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,1] ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x10]35 36v_pk_add_u16 v1, v2, v3 op_sel_hi:[1,0]37// GFX9: v_pk_add_u16 v1, v2, v3 op_sel_hi:[1,0] ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x08]38 39v_pk_add_u16 v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1]40// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,1] ; encoding: [0x01,0x58,0x8a,0xd3,0x02,0x07,0x02,0x18]41 42v_pk_add_u16 v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0]43// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] ; encoding: [0x01,0x48,0x8a,0xd3,0x02,0x07,0x02,0x08]44 45v_pk_add_u16 v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1]46// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] ; encoding: [0x01,0x50,0x8a,0xd3,0x02,0x07,0x02,0x10]47 48v_pk_add_u16 v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1]49// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] ; encoding: [0x01,0x48,0x8a,0xd3,0x02,0x07,0x02,0x10]50 51v_pk_add_u16 v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0]52// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] ; encoding: [0x01,0x50,0x8a,0xd3,0x02,0x07,0x02,0x08]53 54//55// Test src2 op_sel/op_sel_hi56//57 58v_pk_fma_f16 v8, v0, s0, v159// GFX9: v_pk_fma_f16 v8, v0, s0, v1 ; encoding: [0x08,0x40,0x8e,0xd3,0x00,0x01,0x04,0x1c]60 61v_pk_fma_f16 v8, v0, s0, v1 neg_lo:[0,0,0] neg_hi:[0,0,0]62// GFX9: v_pk_fma_f16 v8, v0, s0, v1 ; encoding: [0x08,0x40,0x8e,0xd3,0x00,0x01,0x04,0x1c]63 64v_pk_fma_f16 v8, v0, s0, v1 op_sel:[0,0,0] op_sel_hi:[1,1,1] neg_lo:[0,0,0] neg_hi:[0,0,0]65// GFX9: v_pk_fma_f16 v8, v0, s0, v1 ; encoding: [0x08,0x40,0x8e,0xd3,0x00,0x01,0x04,0x1c]66 67v_pk_fma_f16 v8, v0, s0, v1 op_sel:[0,0,0] op_sel_hi:[1,1,1]68// GFX9: v_pk_fma_f16 v8, v0, s0, v1 ; encoding: [0x08,0x40,0x8e,0xd3,0x00,0x01,0x04,0x1c]69 70v_pk_fma_f16 v8, v0, s0, v1 op_sel:[0,0,0] op_sel_hi:[0,0,0]71// GFX9: v_pk_fma_f16 v8, v0, s0, v1 op_sel_hi:[0,0,0] ; encoding: [0x08,0x00,0x8e,0xd3,0x00,0x01,0x04,0x04]72 73v_pk_fma_f16 v8, v0, s0, v1 op_sel:[0,0,1] op_sel_hi:[0,0,1]74// GFX9: v_pk_fma_f16 v8, v0, s0, v1 op_sel:[0,0,1] op_sel_hi:[0,0,1] ; encoding: [0x08,0x60,0x8e,0xd3,0x00,0x01,0x04,0x04]75 76//77// Test neg_lo/neg_hi78//79 80v_pk_fma_f16 v8, v0, s0, v1 neg_lo:[1,1,1]81// GFX9: v_pk_fma_f16 v8, v0, s0, v1 neg_lo:[1,1,1] ; encoding: [0x08,0x40,0x8e,0xd3,0x00,0x01,0x04,0xfc]82 83v_pk_fma_f16 v8, v0, s0, v1 neg_hi:[1,1,1]84// GFX9: v_pk_fma_f16 v8, v0, s0, v1 neg_hi:[1,1,1] ; encoding: [0x08,0x47,0x8e,0xd3,0x00,0x01,0x04,0x1c]85 86v_pk_fma_f16 v8, v0, s0, v1 neg_lo:[1,1,1] neg_hi:[1,1,1]87// GFX9: v_pk_fma_f16 v8, v0, s0, v1 neg_lo:[1,1,1] neg_hi:[1,1,1] ; encoding: [0x08,0x47,0x8e,0xd3,0x00,0x01,0x04,0xfc]88 89v_pk_fma_f16 v8, v0, s0, v1 neg_lo:[1,0,0]90// GFX9: v_pk_fma_f16 v8, v0, s0, v1 neg_lo:[1,0,0] ; encoding: [0x08,0x40,0x8e,0xd3,0x00,0x01,0x04,0x3c]91 92v_pk_fma_f16 v8, v0, s0, v1 neg_lo:[0,1,0]93// GFX9: v_pk_fma_f16 v8, v0, s0, v1 neg_lo:[0,1,0] ; encoding: [0x08,0x40,0x8e,0xd3,0x00,0x01,0x04,0x5c]94 95v_pk_fma_f16 v8, v0, s0, v1 neg_lo:[0,0,1]96// GFX9: v_pk_fma_f16 v8, v0, s0, v1 neg_lo:[0,0,1] ; encoding: [0x08,0x40,0x8e,0xd3,0x00,0x01,0x04,0x9c]97 98v_pk_fma_f16 v8, v0, s0, v1 neg_hi:[1,0,0]99// GFX9: v_pk_fma_f16 v8, v0, s0, v1 neg_hi:[1,0,0] ; encoding: [0x08,0x41,0x8e,0xd3,0x00,0x01,0x04,0x1c]100 101v_pk_fma_f16 v8, v0, s0, v1 neg_hi:[0,1,0]102// GFX9: v_pk_fma_f16 v8, v0, s0, v1 neg_hi:[0,1,0] ; encoding: [0x08,0x42,0x8e,0xd3,0x00,0x01,0x04,0x1c]103 104v_pk_fma_f16 v8, v0, s0, v1 neg_hi:[0,0,1]105// GFX9: v_pk_fma_f16 v8, v0, s0, v1 neg_hi:[0,0,1] ; encoding: [0x08,0x44,0x8e,0xd3,0x00,0x01,0x04,0x1c]106 107 108// Test clamp109v_pk_fma_f16 v8, v0, s0, v1 clamp110// GFX9: v_pk_fma_f16 v8, v0, s0, v1 clamp ; encoding: [0x08,0xc0,0x8e,0xd3,0x00,0x01,0x04,0x1c]111 112v_pk_add_u16 v1, v2, v3 clamp113// GFX9: v_pk_add_u16 v1, v2, v3 clamp ; encoding: [0x01,0xc0,0x8a,0xd3,0x02,0x07,0x02,0x18]114 115v_pk_min_i16 v0, v1, v2 clamp116// GFX9: v_pk_min_i16 v0, v1, v2 clamp ; encoding: [0x00,0xc0,0x88,0xd3,0x01,0x05,0x02,0x18]117 118//119// Instruction tests:120//121 122v_pk_mul_lo_u16 v0, v1, v2123// GFX9: v_pk_mul_lo_u16 v0, v1, v2 ; encoding: [0x00,0x40,0x81,0xd3,0x01,0x05,0x02,0x18]124 125v_pk_add_i16 v0, v1, v2126// GFX9: v_pk_add_i16 v0, v1, v2 ; encoding: [0x00,0x40,0x82,0xd3,0x01,0x05,0x02,0x18]127 128v_pk_sub_i16 v0, v1, v2129// GFX9: v_pk_sub_i16 v0, v1, v2 ; encoding: [0x00,0x40,0x83,0xd3,0x01,0x05,0x02,0x18]130 131v_pk_lshlrev_b16 v0, v1, v2132// GFX9: v_pk_lshlrev_b16 v0, v1, v2 ; encoding: [0x00,0x40,0x84,0xd3,0x01,0x05,0x02,0x18]133 134v_pk_lshrrev_b16 v0, v1, v2135// GFX9: v_pk_lshrrev_b16 v0, v1, v2 ; encoding: [0x00,0x40,0x85,0xd3,0x01,0x05,0x02,0x18]136 137v_pk_ashrrev_i16 v0, v1, v2138// GFX9: v_pk_ashrrev_i16 v0, v1, v2 ; encoding: [0x00,0x40,0x86,0xd3,0x01,0x05,0x02,0x18]139 140v_pk_max_i16 v0, v1, v2141// GFX9: v_pk_max_i16 v0, v1, v2 ; encoding: [0x00,0x40,0x87,0xd3,0x01,0x05,0x02,0x18]142 143v_pk_min_i16 v0, v1, v2144// GFX9: v_pk_min_i16 v0, v1, v2 ; encoding: [0x00,0x40,0x88,0xd3,0x01,0x05,0x02,0x18]145 146v_pk_add_u16 v0, v1, v2147// GFX9: v_pk_add_u16 v0, v1, v2 ; encoding: [0x00,0x40,0x8a,0xd3,0x01,0x05,0x02,0x18]148 149v_pk_max_u16 v0, v1, v2150// GFX9: v_pk_max_u16 v0, v1, v2 ; encoding: [0x00,0x40,0x8c,0xd3,0x01,0x05,0x02,0x18]151 152v_pk_min_u16 v0, v1, v2153// GFX9: v_pk_min_u16 v0, v1, v2 ; encoding: [0x00,0x40,0x8d,0xd3,0x01,0x05,0x02,0x18]154 155v_pk_fma_f16 v0, v1, v2, v3156// GFX9: v_pk_fma_f16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0x8e,0xd3,0x01,0x05,0x0e,0x1c]157 158v_pk_add_f16 v0, v1, v2159// GFX9: v_pk_add_f16 v0, v1, v2 ; encoding: [0x00,0x40,0x8f,0xd3,0x01,0x05,0x02,0x18]160 161v_pk_mul_f16 v0, v1, v2162// GFX9: v_pk_mul_f16 v0, v1, v2 ; encoding: [0x00,0x40,0x90,0xd3,0x01,0x05,0x02,0x18]163 164v_pk_min_f16 v0, v1, v2165// GFX9: v_pk_min_f16 v0, v1, v2 ; encoding: [0x00,0x40,0x91,0xd3,0x01,0x05,0x02,0x18]166 167v_pk_max_f16 v0, v1, v2168// GFX9: v_pk_max_f16 v0, v1, v2 ; encoding: [0x00,0x40,0x92,0xd3,0x01,0x05,0x02,0x18]169