1 // RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl -mattr=+avx512ifma --show-encoding %s | FileCheck %s 2 3 vpmadd52luq %zmm4, %zmm5, %zmm6 4 //CHECK: vpmadd52luq %zmm4, %zmm5, %zmm6 5 //CHECK: encoding: [0x62,0xf2,0xd5,0x48,0xb4,0xf4] 6 7 vpmadd52luq %zmm4, %zmm5, %zmm6 {%k7} 8 //CHECK: vpmadd52luq %zmm4, %zmm5, %zmm6 {%k7} 9 //CHECK: encoding: [0x62,0xf2,0xd5,0x4f,0xb4,0xf4] 10 11 vpmadd52luq %zmm4, %zmm5, %zmm6 {%k7} {z} 12 //CHECK: vpmadd52luq %zmm4, %zmm5, %zmm6 {%k7} {z} 13 //CHECK: encoding: [0x62,0xf2,0xd5,0xcf,0xb4,0xf4] 14 15 vpmadd52luq %zmm28, %zmm29, %zmm30 16 //CHECK: vpmadd52luq %zmm28, %zmm29, %zmm30 17 //CHECK: encoding: [0x62,0x02,0x95,0x40,0xb4,0xf4] 18 19 vpmadd52luq %zmm28, %zmm29, %zmm30 {%k7} 20 //CHECK: vpmadd52luq %zmm28, %zmm29, %zmm30 {%k7} 21 //CHECK: encoding: [0x62,0x02,0x95,0x47,0xb4,0xf4] 22 23 vpmadd52luq %zmm28, %zmm29, %zmm30 {%k7} {z} 24 //CHECK: vpmadd52luq %zmm28, %zmm29, %zmm30 {%k7} {z} 25 //CHECK: encoding: [0x62,0x02,0x95,0xc7,0xb4,0xf4] 26 27 vpmadd52luq (%rcx), %zmm29, %zmm30 28 //CHECK: vpmadd52luq (%rcx), %zmm29, %zmm30 29 //CHECK: encoding: [0x62,0x62,0x95,0x40,0xb4,0x31] 30 31 vpmadd52luq 0x123(%rax,%r14,8), %zmm29, %zmm30 32 //CHECK: vpmadd52luq 291(%rax,%r14,8), %zmm29, %zmm30 33 //CHECK: encoding: [0x62,0x22,0x95,0x40,0xb4,0xb4,0xf0,0x23,0x01,0x00,0x00] 34 35 vpmadd52luq (%rcx){1to8}, %zmm29, %zmm30 36 //CHECK: vpmadd52luq (%rcx){1to8}, %zmm29, %zmm30 37 //CHECK: encoding: [0x62,0x62,0x95,0x50,0xb4,0x31] 38 39 vpmadd52luq 0x1fc0(%rdx), %zmm29, %zmm30 40 //CHECK: vpmadd52luq 8128(%rdx), %zmm29, %zmm30 41 //CHECK: encoding: [0x62,0x62,0x95,0x40,0xb4,0x72,0x7f] 42 43 vpmadd52luq 0x2000(%rdx), %zmm29, %zmm30 44 //CHECK: vpmadd52luq 8192(%rdx), %zmm29, %zmm30 45 //CHECK: encoding: [0x62,0x62,0x95,0x40,0xb4,0xb2,0x00,0x20,0x00,0x00] 46 47 vpmadd52luq -0x2000(%rdx), %zmm29, %zmm30 48 //CHECK: vpmadd52luq -8192(%rdx), %zmm29, %zmm30 49 //CHECK: encoding: [0x62,0x62,0x95,0x40,0xb4,0x72,0x80] 50 51 vpmadd52luq -0x2040(%rdx), %zmm29, %zmm30 52 //CHECK: vpmadd52luq -8256(%rdx), %zmm29, %zmm30 53 //CHECK: encoding: [0x62,0x62,0x95,0x40,0xb4,0xb2,0xc0,0xdf,0xff,0xff] 54 55 vpmadd52luq 0x3f8(%rdx){1to8}, %zmm29, %zmm30 56 //CHECK: vpmadd52luq 1016(%rdx){1to8}, %zmm29, %zmm30 57 //CHECK: encoding: [0x62,0x62,0x95,0x50,0xb4,0x72,0x7f] 58 59 vpmadd52luq 0x400(%rdx){1to8}, %zmm29, %zmm30 60 //CHECK: vpmadd52luq 1024(%rdx){1to8}, %zmm29, %zmm30 61 //CHECK: encoding: [0x62,0x62,0x95,0x50,0xb4,0xb2,0x00,0x04,0x00,0x00] 62 63 vpmadd52luq -0x400(%rdx){1to8}, %zmm29, %zmm30 64 //CHECK: vpmadd52luq -1024(%rdx){1to8}, %zmm29, %zmm30 65 //CHECK: encoding: [0x62,0x62,0x95,0x50,0xb4,0x72,0x80] 66 67 vpmadd52luq -0x408(%rdx){1to8}, %zmm29, %zmm30 68 //CHECK: vpmadd52luq -1032(%rdx){1to8}, %zmm29, %zmm30 69 //CHECK: encoding: [0x62,0x62,0x95,0x50,0xb4,0xb2,0xf8,0xfb,0xff,0xff] 70 71 vpmadd52luq 0x1234(%rax,%r14,8), %zmm29, %zmm30 72 //CHECK: vpmadd52luq 4660(%rax,%r14,8), %zmm29, %zmm30 73 //CHECK: encoding: [0x62,0x22,0x95,0x40,0xb4,0xb4,0xf0,0x34,0x12,0x00,0x00] 74 75 vpmadd52huq %zmm4, %zmm5, %zmm6 76 //CHECK: vpmadd52huq %zmm4, %zmm5, %zmm6 77 //CHECK: encoding: [0x62,0xf2,0xd5,0x48,0xb5,0xf4] 78 79 vpmadd52huq %zmm4, %zmm5, %zmm6 {%k7} 80 //CHECK: vpmadd52huq %zmm4, %zmm5, %zmm6 {%k7} 81 //CHECK: encoding: [0x62,0xf2,0xd5,0x4f,0xb5,0xf4] 82 83 vpmadd52huq %zmm4, %zmm5, %zmm6 {%k7} {z} 84 //CHECK: vpmadd52huq %zmm4, %zmm5, %zmm6 {%k7} {z} 85 //CHECK: encoding: [0x62,0xf2,0xd5,0xcf,0xb5,0xf4] 86 87 vpmadd52huq %zmm28, %zmm29, %zmm30 88 //CHECK: vpmadd52huq %zmm28, %zmm29, %zmm30 89 //CHECK: encoding: [0x62,0x02,0x95,0x40,0xb5,0xf4] 90 91 vpmadd52huq %zmm28, %zmm29, %zmm30 {%k7} 92 //CHECK: vpmadd52huq %zmm28, %zmm29, %zmm30 {%k7} 93 //CHECK: encoding: [0x62,0x02,0x95,0x47,0xb5,0xf4] 94 95 vpmadd52huq %zmm28, %zmm29, %zmm30 {%k7} {z} 96 //CHECK: vpmadd52huq %zmm28, %zmm29, %zmm30 {%k7} {z} 97 //CHECK: encoding: [0x62,0x02,0x95,0xc7,0xb5,0xf4] 98 99 vpmadd52huq (%rcx), %zmm29, %zmm30 100 //CHECK: vpmadd52huq (%rcx), %zmm29, %zmm30 101 //CHECK: encoding: [0x62,0x62,0x95,0x40,0xb5,0x31] 102 103 vpmadd52huq 0x123(%rax,%r14,8), %zmm29, %zmm30 104 //CHECK: vpmadd52huq 291(%rax,%r14,8), %zmm29, %zmm30 105 //CHECK: encoding: [0x62,0x22,0x95,0x40,0xb5,0xb4,0xf0,0x23,0x01,0x00,0x00] 106 107 vpmadd52huq (%rcx){1to8}, %zmm29, %zmm30 108 //CHECK: vpmadd52huq (%rcx){1to8}, %zmm29, %zmm30 109 //CHECK: encoding: [0x62,0x62,0x95,0x50,0xb5,0x31] 110 111 vpmadd52huq 0x1fc0(%rdx), %zmm29, %zmm30 112 //CHECK: vpmadd52huq 8128(%rdx), %zmm29, %zmm30 113 //CHECK: encoding: [0x62,0x62,0x95,0x40,0xb5,0x72,0x7f] 114 115 vpmadd52huq 0x2000(%rdx), %zmm29, %zmm30 116 //CHECK: vpmadd52huq 8192(%rdx), %zmm29, %zmm30 117 //CHECK: encoding: [0x62,0x62,0x95,0x40,0xb5,0xb2,0x00,0x20,0x00,0x00] 118 119 vpmadd52huq -0x2000(%rdx), %zmm29, %zmm30 120 //CHECK: vpmadd52huq -8192(%rdx), %zmm29, %zmm30 121 //CHECK: encoding: [0x62,0x62,0x95,0x40,0xb5,0x72,0x80] 122 123 vpmadd52huq -0x2040(%rdx), %zmm29, %zmm30 124 //CHECK: vpmadd52huq -8256(%rdx), %zmm29, %zmm30 125 //CHECK: encoding: [0x62,0x62,0x95,0x40,0xb5,0xb2,0xc0,0xdf,0xff,0xff] 126 127 vpmadd52huq 0x3f8(%rdx){1to8}, %zmm29, %zmm30 128 //CHECK: vpmadd52huq 1016(%rdx){1to8}, %zmm29, %zmm30 129 //CHECK: encoding: [0x62,0x62,0x95,0x50,0xb5,0x72,0x7f] 130 131 vpmadd52huq 0x400(%rdx){1to8}, %zmm29, %zmm30 132 //CHECK: vpmadd52huq 1024(%rdx){1to8}, %zmm29, %zmm30 133 //CHECK: encoding: [0x62,0x62,0x95,0x50,0xb5,0xb2,0x00,0x04,0x00,0x00] 134 135 vpmadd52huq -0x400(%rdx){1to8}, %zmm29, %zmm30 136 //CHECK: vpmadd52huq -1024(%rdx){1to8}, %zmm29, %zmm30 137 //CHECK: encoding: [0x62,0x62,0x95,0x50,0xb5,0x72,0x80] 138 139 vpmadd52huq -0x408(%rdx){1to8}, %zmm29, %zmm30 140 //CHECK: vpmadd52huq -1032(%rdx){1to8}, %zmm29, %zmm30 141 //CHECK: encoding: [0x62,0x62,0x95,0x50,0xb5,0xb2,0xf8,0xfb,0xff,0xff] 142 143 vpmadd52huq 0x1234(%rax,%r14,8), %zmm29, %zmm30 144 //CHECK: vpmadd52huq 4660(%rax,%r14,8), %zmm29, %zmm30 145 //CHECK: encoding: [0x62,0x22,0x95,0x40,0xb5,0xb4,0xf0,0x34,0x12,0x00,0x00] 146