1 // RUN: llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=CIVI -check-prefix=VI %s 2 3 v_add_f16 v1, 0, v2 4 // VI: v_add_f16_e32 v1, 0, v2 ; encoding: [0x80,0x04,0x02,0x3e] 5 6 v_add_f16 v1, 0.0, v2 7 // VI: v_add_f16_e32 v1, 0, v2 ; encoding: [0x80,0x04,0x02,0x3e] 8 9 v_add_f16 v1, v2, 0 10 // VI: v_add_f16_e64 v1, v2, 0 ; encoding: [0x01,0x00,0x1f,0xd1,0x02,0x01,0x01,0x00] 11 12 v_add_f16 v1, v2, 0.0 13 // VI: v_add_f16_e64 v1, v2, 0 ; encoding: [0x01,0x00,0x1f,0xd1,0x02,0x01,0x01,0x00] 14 15 v_add_f16 v1, -0.0, v2 16 // VI: v_add_f16_e32 v1, 0x8000, v2 ; encoding: [0xff,0x04,0x02,0x3e,0x00,0x80,0x00,0x00] 17 18 v_add_f16 v1, 1.0, v2 19 // VI: v_add_f16_e32 v1, 1.0, v2 ; encoding: [0xf2,0x04,0x02,0x3e] 20 21 v_add_f16 v1, -1.0, v2 22 // VI: v_add_f16_e32 v1, -1.0, v2 ; encoding: [0xf3,0x04,0x02,0x3e] 23 24 v_add_f16 v1, -0.5, v2 25 // VI: v_add_f16_e32 v1, -0.5, v2 ; encoding: [0xf1,0x04,0x02,0x3e] 26 27 v_add_f16 v1, 0.5, v2 28 // VI: v_add_f16_e32 v1, 0.5, v2 ; encoding: [0xf0,0x04,0x02,0x3e] 29 30 v_add_f16 v1, 2.0, v2 31 // VI: v_add_f16_e32 v1, 2.0, v2 ; encoding: [0xf4,0x04,0x02,0x3e] 32 33 v_add_f16 v1, -2.0, v2 34 // VI: v_add_f16_e32 v1, -2.0, v2 ; encoding: [0xf5,0x04,0x02,0x3e] 35 36 v_add_f16 v1, 4.0, v2 37 // VI: v_add_f16_e32 v1, 4.0, v2 ; encoding: [0xf6,0x04,0x02,0x3e] 38 39 v_add_f16 v1, -4.0, v2 40 // VI: v_add_f16_e32 v1, -4.0, v2 ; encoding: [0xf7,0x04,0x02,0x3e] 41 42 v_add_f16 v1, 0.15915494, v2 43 // VI: v_add_f16_e32 v1, 0.15915494, v2 ; encoding: [0xf8,0x04,0x02,0x3e] 44 45 v_add_f16 v1, -0.15915494, v2 46 // VI: v_add_f16_e32 v1, 0xb118, v2 ; encoding: [0xff,0x04,0x02,0x3e,0x18,0xb1,0x00,0x00] 47 48 v_add_f16 v1, -1, v2 49 // VI: v_add_f16_e32 v1, -1, v2 ; encoding: [0xc1,0x04,0x02,0x3e] 50 51 52 v_add_f16 v1, -2, v2 53 // VI: v_add_f16_e32 v1, -2, v2 ; encoding: [0xc2,0x04,0x02,0x3e] 54 55 v_add_f16 v1, -3, v2 56 // VI: v_add_f16_e32 v1, -3, v2 ; encoding: [0xc3,0x04,0x02,0x3e] 57 58 v_add_f16 v1, -16, v2 59 // VI: v_add_f16_e32 v1, -16, v2 ; encoding: [0xd0,0x04,0x02,0x3e] 60 61 v_add_f16 v1, 1, v2 62 // VI: v_add_f16_e32 v1, 1, v2 ; encoding: [0x81,0x04,0x02,0x3e] 63 64 v_add_f16 v1, 2, v2 65 // VI: v_add_f16_e32 v1, 2, v2 ; encoding: [0x82,0x04,0x02,0x3e] 66 67 v_add_f16 v1, 3, v2 68 // VI: v_add_f16_e32 v1, 3, v2 ; encoding: [0x83,0x04,0x02,0x3e] 69 70 v_add_f16 v1, 4, v2 71 // VI: v_add_f16_e32 v1, 4, v2 ; encoding: [0x84,0x04,0x02,0x3e] 72 73 v_add_f16 v1, 15, v2 74 // VI: v_add_f16_e32 v1, 15, v2 ; encoding: [0x8f,0x04,0x02,0x3e] 75 76 v_add_f16 v1, 16, v2 77 // VI: v_add_f16_e32 v1, 16, v2 ; encoding: [0x90,0x04,0x02,0x3e] 78 79 v_add_f16 v1, 63, v2 80 // VI: v_add_f16_e32 v1, 63, v2 ; encoding: [0xbf,0x04,0x02,0x3e] 81 82 v_add_f16 v1, 64, v2 83 // VI: v_add_f16_e32 v1, 64, v2 ; encoding: [0xc0,0x04,0x02,0x3e] 84 85 v_add_f16 v1, 0x0001, v2 86 // VI: v_add_f16_e32 v1, 1, v2 ; encoding: [0x81,0x04,0x02,0x3e] 87 88 v_add_f16 v1, 0xffff, v2 89 // VI: v_add_f16_e32 v1, -1, v2 ; encoding: [0xc1,0x04,0x02,0x3e] 90 91 v_add_f16 v1, -17, v2 92 // VI: v_add_f16_e32 v1, 0xffef, v2 ; encoding: [0xff,0x04,0x02,0x3e,0xef,0xff,0x00,0x00] 93 94 v_add_f16 v1, 65, v2 95 // VI: v_add_f16_e32 v1, 0x41, v2 ; encoding: [0xff,0x04,0x02,0x3e,0x41,0x00,0x00,0x00] 96 97 v_add_f16 v1, 0x3c00, v2 98 // VI: v_add_f16_e32 v1, 1.0, v2 ; encoding: [0xf2,0x04,0x02,0x3e] 99 100 v_add_f16 v1, 0xbc00, v2 101 // VI: v_add_f16_e32 v1, -1.0, v2 ; encoding: [0xf3,0x04,0x02,0x3e] 102 103 v_add_f16 v1, 0x3800, v2 104 // VI: v_add_f16_e32 v1, 0.5, v2 ; encoding: [0xf0,0x04,0x02,0x3e] 105 106 v_add_f16 v1, 0xb800, v2 107 // VI: v_add_f16_e32 v1, -0.5, v2 ; encoding: [0xf1,0x04,0x02,0x3e] 108 109 v_add_f16 v1, 0x4000, v2 110 // VI: v_add_f16_e32 v1, 2.0, v2 ; encoding: [0xf4,0x04,0x02,0x3e] 111 112 v_add_f16 v1, 0xc000, v2 113 // VI: v_add_f16_e32 v1, -2.0, v2 ; encoding: [0xf5,0x04,0x02,0x3e] 114 115 v_add_f16 v1, 0x4400, v2 116 // VI: v_add_f16_e32 v1, 4.0, v2 ; encoding: [0xf6,0x04,0x02,0x3e] 117 118 v_add_f16 v1, 0xc400, v2 119 // VI: v_add_f16_e32 v1, -4.0, v2 ; encoding: [0xf7,0x04,0x02,0x3e] 120 121 v_add_f16 v1, 0x3118, v2 122 // VI: v_add_f16_e32 v1, 0.15915494, v2 ; encoding: [0xf8,0x04,0x02,0x3e] 123 124 v_add_f16 v1, -32768, v2 125 // VI: v_add_f16_e32 v1, 0x8000, v2 ; encoding: [0xff,0x04,0x02,0x3e,0x00,0x80,0x00,0x00] 126 127 v_add_f16 v1, 32767, v2 128 // VI: v_add_f16_e32 v1, 0x7fff, v2 ; encoding: [0xff,0x04,0x02,0x3e,0xff,0x7f,0x00,0x00] 129 130 v_add_f16 v1, 65535, v2 131 // VI: v_add_f16_e32 v1, -1, v2 ; encoding: [0xc1,0x04,0x02,0x3e] 132 133 134 // K-constant 135 v_madmk_f16 v1, v2, 0x4280, v3 136 // VI: v_madmk_f16 v1, v2, 0x4280, v3 ; encoding: [0x02,0x07,0x02,0x48,0x80,0x42,0x00,0x00] 137 138 v_madmk_f16 v1, v2, 1.0, v3 139 // VI: v_madmk_f16 v1, v2, 0x3c00, v3 ; encoding: [0x02,0x07,0x02,0x48,0x00,0x3c,0x00,0x00] 140 141 v_madmk_f16 v1, v2, 1, v3 142 // VI: v_madmk_f16 v1, v2, 0x1, v3 ; encoding: [0x02,0x07,0x02,0x48,0x01,0x00,0x00,0x00] 143 144 v_madmk_f16 v1, v2, 64.0, v3 145 // VI: v_madmk_f16 v1, v2, 0x5400, v3 ; encoding: [0x02,0x07,0x02,0x48,0x00,0x54,0x00,0x00] 146 147 148 v_add_f16_e32 v1, 64.0, v2 149