| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avxifma -emit-llvm -o - -Wall -Werror | FileCheck %s | ||
| // RUN: %clang_cc1 -ffreestanding %s -triple=i386-apple-darwin -target-feature +avxifma -emit-llvm -o - -Wall -Werror | FileCheck %s | ||
|
|
||
| #include <immintrin.h> | ||
|
|
||
| __m128i test_mm_madd52hi_epu64(__m128i __X, __m128i __Y, __m128i __Z) { | ||
| // CHECK-LABEL: @test_mm_madd52hi_epu64 | ||
| // CHECK: call <2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128 | ||
| return _mm_madd52hi_epu64(__X, __Y, __Z); | ||
| } | ||
|
|
||
| __m256i test_mm256_madd52hi_epu64(__m256i __X, __m256i __Y, __m256i __Z) { | ||
| // CHECK-LABEL: @test_mm256_madd52hi_epu64 | ||
| // CHECK: call <4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256 | ||
| return _mm256_madd52hi_epu64(__X, __Y, __Z); | ||
| } | ||
|
|
||
| __m128i test_mm_madd52lo_epu64(__m128i __X, __m128i __Y, __m128i __Z) { | ||
| // CHECK-LABEL: @test_mm_madd52lo_epu64 | ||
| // CHECK: call <2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128 | ||
| return _mm_madd52lo_epu64(__X, __Y, __Z); | ||
| } | ||
|
|
||
| __m256i test_mm256_madd52lo_epu64(__m256i __X, __m256i __Y, __m256i __Z) { | ||
| // CHECK-LABEL: @test_mm256_madd52lo_epu64 | ||
| // CHECK: call <4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256 | ||
| return _mm256_madd52lo_epu64(__X, __Y, __Z); | ||
| } | ||
|
|
||
| __m128i test_mm_madd52hi_avx_epu64(__m128i __X, __m128i __Y, __m128i __Z) { | ||
| // CHECK-LABEL: @test_mm_madd52hi_avx_epu64 | ||
| // CHECK: call <2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128 | ||
| return _mm_madd52hi_avx_epu64(__X, __Y, __Z); | ||
| } | ||
|
|
||
| __m256i test_mm256_madd52hi_avx_epu64(__m256i __X, __m256i __Y, __m256i __Z) { | ||
| // CHECK-LABEL: @test_mm256_madd52hi_avx_epu64 | ||
| // CHECK: call <4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256 | ||
| return _mm256_madd52hi_avx_epu64(__X, __Y, __Z); | ||
| } | ||
|
|
||
| __m128i test_mm_madd52lo_avx_epu64(__m128i __X, __m128i __Y, __m128i __Z) { | ||
| // CHECK-LABEL: @test_mm_madd52lo_avx_epu64 | ||
| // CHECK: call <2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128 | ||
| return _mm_madd52lo_avx_epu64(__X, __Y, __Z); | ||
| } | ||
|
|
||
| __m256i test_mm256_madd52lo_avx_epu64(__m256i __X, __m256i __Y, __m256i __Z) { | ||
| // CHECK-LABEL: @test_mm256_madd52lo_avx_epu64 | ||
| // CHECK: call <4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256 | ||
| return _mm256_madd52lo_avx_epu64(__X, __Y, __Z); | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,69 @@ | ||
| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | ||
| ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avxifma --show-mc-encoding | FileCheck %s --check-prefix=AVXIFMA | ||
| ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avxifma --show-mc-encoding | FileCheck %s --check-prefix=AVXIFMA | ||
| ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avxifma,+avx512ifma,+avx512vl --show-mc-encoding | FileCheck %s --check-prefix=AVX512IFMA | ||
| ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avxifma,+avx512ifma,+avx512vl --show-mc-encoding | FileCheck %s --check-prefix=AVX512IFMA | ||
|
|
||
| declare <2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64>, <2 x i64>, <2 x i64>) | ||
|
|
||
| define <2 x i64>@test_int_x86_avx_vpmadd52h_uq_128(<2 x i64> %x0, <2 x i64> %x1, <2 x i64> %x2) { | ||
| ; AVXIFMA-LABEL: test_int_x86_avx_vpmadd52h_uq_128: | ||
| ; AVXIFMA: # %bb.0: | ||
| ; AVXIFMA-NEXT: {vex} vpmadd52huq %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0xb5,0xc2] | ||
| ; AVXIFMA-NEXT: ret{{[l|q]}} # encoding: [0xc3] | ||
| ; | ||
| ; AVX512IFMA-LABEL: test_int_x86_avx_vpmadd52h_uq_128: | ||
| ; AVX512IFMA: # %bb.0: | ||
| ; AVX512IFMA-NEXT: {vex} vpmadd52huq %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf1,0xb5,0xc2] | ||
| ; AVX512IFMA-NEXT: ret{{[l|q]}} # encoding: [0xc3] | ||
| %res = call <2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64> %x0, <2 x i64> %x1, <2 x i64> %x2) | ||
| ret <2 x i64> %res | ||
| } | ||
|
|
||
| declare <4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64>, <4 x i64>, <4 x i64>) | ||
|
|
||
| define <4 x i64>@test_int_x86_avx_vpmadd52h_uq_256(<4 x i64> %x0, <4 x i64> %x1, <4 x i64> %x2) { | ||
| ; AVXIFMA-LABEL: test_int_x86_avx_vpmadd52h_uq_256: | ||
| ; AVXIFMA: # %bb.0: | ||
| ; AVXIFMA-NEXT: {vex} vpmadd52huq %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0xf5,0xb5,0xc2] | ||
| ; AVXIFMA-NEXT: ret{{[l|q]}} # encoding: [0xc3] | ||
| ; | ||
| ; AVX512IFMA-LABEL: test_int_x86_avx_vpmadd52h_uq_256: | ||
| ; AVX512IFMA: # %bb.0: | ||
| ; AVX512IFMA-NEXT: {vex} vpmadd52huq %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf5,0xb5,0xc2] | ||
| ; AVX512IFMA-NEXT: ret{{[l|q]}} # encoding: [0xc3] | ||
| %res = call <4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64> %x0, <4 x i64> %x1, <4 x i64> %x2) | ||
| ret <4 x i64> %res | ||
| } | ||
|
|
||
| declare <2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64>, <2 x i64>, <2 x i64>) | ||
|
|
||
| define <2 x i64>@test_int_x86_avx_vpmadd52l_uq_128(<2 x i64> %x0, <2 x i64> %x1, <2 x i64> %x2) { | ||
| ; AVXIFMA-LABEL: test_int_x86_avx_vpmadd52l_uq_128: | ||
| ; AVXIFMA: # %bb.0: | ||
| ; AVXIFMA-NEXT: {vex} vpmadd52luq %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0xb4,0xc2] | ||
| ; AVXIFMA-NEXT: ret{{[l|q]}} # encoding: [0xc3] | ||
| ; | ||
| ; AVX512IFMA-LABEL: test_int_x86_avx_vpmadd52l_uq_128: | ||
| ; AVX512IFMA: # %bb.0: | ||
| ; AVX512IFMA-NEXT: {vex} vpmadd52luq %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf1,0xb4,0xc2] | ||
| ; AVX512IFMA-NEXT: ret{{[l|q]}} # encoding: [0xc3] | ||
| %res = call <2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64> %x0, <2 x i64> %x1, <2 x i64> %x2) | ||
| ret <2 x i64> %res | ||
| } | ||
|
|
||
| declare <4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64>, <4 x i64>, <4 x i64>) | ||
|
|
||
| define <4 x i64>@test_int_x86_avx_vpmadd52l_uq_256(<4 x i64> %x0, <4 x i64> %x1, <4 x i64> %x2) { | ||
| ; AVXIFMA-LABEL: test_int_x86_avx_vpmadd52l_uq_256: | ||
| ; AVXIFMA: # %bb.0: | ||
| ; AVXIFMA-NEXT: {vex} vpmadd52luq %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0xf5,0xb4,0xc2] | ||
| ; AVXIFMA-NEXT: ret{{[l|q]}} # encoding: [0xc3] | ||
| ; | ||
| ; AVX512IFMA-LABEL: test_int_x86_avx_vpmadd52l_uq_256: | ||
| ; AVX512IFMA: # %bb.0: | ||
| ; AVX512IFMA-NEXT: {vex} vpmadd52luq %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf5,0xb4,0xc2] | ||
| ; AVX512IFMA-NEXT: ret{{[l|q]}} # encoding: [0xc3] | ||
| %res = call <4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64> %x0, <4 x i64> %x1, <4 x i64> %x2) | ||
| ret <4 x i64> %res | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,217 @@ | ||
| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | ||
| ; RUN: llc -O3 -disable-peephole -mtriple=x86_64-unknown-unknown -mattr=+avx512ifma,+avx512vl < %s | FileCheck %s | ||
|
|
||
| declare <8 x i64> @llvm.x86.avx512.vpmadd52h.uq.512(<8 x i64>, <8 x i64>, <8 x i64>) | ||
| declare <8 x i64> @llvm.x86.avx512.vpmadd52l.uq.512(<8 x i64>, <8 x i64>, <8 x i64>) | ||
|
|
||
| define <8 x i64> @stack_fold_vpmadd52huq(<8 x i64> %a0, <8 x i64> %a1, <8 x i64> %a2) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52huq: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: vpmadd52huq {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 # 64-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"() | ||
| %2 = call <8 x i64> @llvm.x86.avx512.vpmadd52h.uq.512(<8 x i64> %a0, <8 x i64> %a1, <8 x i64> %a2) | ||
| ret <8 x i64> %2 | ||
| } | ||
|
|
||
| define <8 x i64> @stack_fold_vpmadd52huq_commuted(<8 x i64> %a0, <8 x i64> %a1, <8 x i64> %a2) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52huq_commuted: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: vpmadd52huq {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 # 64-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <8 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"() | ||
| %2 = call <8 x i64> @llvm.x86.avx512.vpmadd52h.uq.512(<8 x i64> %a0, <8 x i64> %a2, <8 x i64> %a1) | ||
| ret <8 x i64> %2 | ||
| } | ||
|
|
||
| define <8 x i64> @stack_fold_vpmadd52huq_mask(ptr %a0, <8 x i64> %a1, <8 x i64> %a2, i8 %mask) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52huq_mask: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: vmovdqa64 (%rdi), %zmm2 | ||
| ; CHECK-NEXT: kmovw %esi, %k1 | ||
| ; CHECK-NEXT: vpmadd52huq {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 {%k1} # 64-byte Folded Reload | ||
| ; CHECK-NEXT: vmovdqa64 %zmm2, %zmm0 | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"() | ||
| %2 = load <8 x i64>, ptr %a0 | ||
| %3 = call <8 x i64> @llvm.x86.avx512.vpmadd52h.uq.512(<8 x i64> %2, <8 x i64> %a1, <8 x i64> %a2) | ||
| %4 = bitcast i8 %mask to <8 x i1> | ||
| %5 = select <8 x i1> %4, <8 x i64> %3, <8 x i64> %2 | ||
| ret <8 x i64> %5 | ||
| } | ||
|
|
||
| define <8 x i64> @stack_fold_vpmadd52huq_mask_commuted(ptr %a0, <8 x i64> %a1, <8 x i64> %a2, i8 %mask) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52huq_mask_commuted: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: vmovdqa64 (%rdi), %zmm2 | ||
| ; CHECK-NEXT: kmovw %esi, %k1 | ||
| ; CHECK-NEXT: vpmadd52huq {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 {%k1} # 64-byte Folded Reload | ||
| ; CHECK-NEXT: vmovdqa64 %zmm2, %zmm0 | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"() | ||
| %2 = load <8 x i64>, ptr %a0 | ||
| %3 = call <8 x i64> @llvm.x86.avx512.vpmadd52h.uq.512(<8 x i64> %2, <8 x i64> %a2, <8 x i64> %a1) | ||
| %4 = bitcast i8 %mask to <8 x i1> | ||
| %5 = select <8 x i1> %4, <8 x i64> %3, <8 x i64> %2 | ||
| ret <8 x i64> %5 | ||
| } | ||
|
|
||
| define <8 x i64> @stack_fold_vpmadd52huq_maskz(<8 x i64> %a0, <8 x i64> %a1, <8 x i64> %a2, ptr %mask) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52huq_maskz: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: movzbl (%rdi), %eax | ||
| ; CHECK-NEXT: kmovw %eax, %k1 | ||
| ; CHECK-NEXT: vpmadd52huq {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 {%k1} {z} # 64-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"() | ||
| %2 = call <8 x i64> @llvm.x86.avx512.vpmadd52h.uq.512(<8 x i64> %a0, <8 x i64> %a1, <8 x i64> %a2) | ||
| %3 = load i8, ptr %mask | ||
| %4 = bitcast i8 %3 to <8 x i1> | ||
| %5 = select <8 x i1> %4, <8 x i64> %2, <8 x i64> zeroinitializer | ||
| ret <8 x i64> %5 | ||
| } | ||
|
|
||
| define <8 x i64> @stack_fold_vpmadd52huq_maskz_commuted(<8 x i64> %a0, <8 x i64> %a1, <8 x i64> %a2, ptr %mask) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52huq_maskz_commuted: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: movzbl (%rdi), %eax | ||
| ; CHECK-NEXT: kmovw %eax, %k1 | ||
| ; CHECK-NEXT: vpmadd52huq {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 {%k1} {z} # 64-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"() | ||
| %2 = call <8 x i64> @llvm.x86.avx512.vpmadd52h.uq.512(<8 x i64> %a0, <8 x i64> %a2, <8 x i64> %a1) | ||
| %3 = load i8, ptr %mask | ||
| %4 = bitcast i8 %3 to <8 x i1> | ||
| %5 = select <8 x i1> %4, <8 x i64> %2, <8 x i64> zeroinitializer | ||
| ret <8 x i64> %5 | ||
| } | ||
|
|
||
| define <8 x i64> @stack_fold_vpmadd52luq(<8 x i64> %a0, <8 x i64> %a1, <8 x i64> %a2) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52luq: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: vpmadd52luq {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 # 64-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"() | ||
| %2 = call <8 x i64> @llvm.x86.avx512.vpmadd52l.uq.512(<8 x i64> %a0, <8 x i64> %a1, <8 x i64> %a2) | ||
| ret <8 x i64> %2 | ||
| } | ||
|
|
||
| define <8 x i64> @stack_fold_vpmadd52luq_commuted(<8 x i64> %a0, <8 x i64> %a1, <8 x i64> %a2) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52luq_commuted: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: vpmadd52luq {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 # 64-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <8 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"() | ||
| %2 = call <8 x i64> @llvm.x86.avx512.vpmadd52l.uq.512(<8 x i64> %a0, <8 x i64> %a2, <8 x i64> %a1) | ||
| ret <8 x i64> %2 | ||
| } | ||
|
|
||
| define <8 x i64> @stack_fold_vpmadd52luq_mask(ptr %a0, <8 x i64> %a1, <8 x i64> %a2, i8 %mask) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52luq_mask: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: vmovdqa64 (%rdi), %zmm2 | ||
| ; CHECK-NEXT: kmovw %esi, %k1 | ||
| ; CHECK-NEXT: vpmadd52luq {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 {%k1} # 64-byte Folded Reload | ||
| ; CHECK-NEXT: vmovdqa64 %zmm2, %zmm0 | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"() | ||
| %2 = load <8 x i64>, ptr %a0 | ||
| %3 = call <8 x i64> @llvm.x86.avx512.vpmadd52l.uq.512(<8 x i64> %2, <8 x i64> %a1, <8 x i64> %a2) | ||
| %4 = bitcast i8 %mask to <8 x i1> | ||
| %5 = select <8 x i1> %4, <8 x i64> %3, <8 x i64> %2 | ||
| ret <8 x i64> %5 | ||
| } | ||
|
|
||
| define <8 x i64> @stack_fold_vpmadd52luq_mask_commuted(ptr %a0, <8 x i64> %a1, <8 x i64> %a2, i8 %mask) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52luq_mask_commuted: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: vmovdqa64 (%rdi), %zmm2 | ||
| ; CHECK-NEXT: kmovw %esi, %k1 | ||
| ; CHECK-NEXT: vpmadd52luq {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 {%k1} # 64-byte Folded Reload | ||
| ; CHECK-NEXT: vmovdqa64 %zmm2, %zmm0 | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"() | ||
| %2 = load <8 x i64>, ptr %a0 | ||
| %3 = call <8 x i64> @llvm.x86.avx512.vpmadd52l.uq.512(<8 x i64> %2, <8 x i64> %a2, <8 x i64> %a1) | ||
| %4 = bitcast i8 %mask to <8 x i1> | ||
| %5 = select <8 x i1> %4, <8 x i64> %3, <8 x i64> %2 | ||
| ret <8 x i64> %5 | ||
| } | ||
|
|
||
| define <8 x i64> @stack_fold_vpmadd52luq_maskz(<8 x i64> %a0, <8 x i64> %a1, <8 x i64> %a2, ptr %mask) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52luq_maskz: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: movzbl (%rdi), %eax | ||
| ; CHECK-NEXT: kmovw %eax, %k1 | ||
| ; CHECK-NEXT: vpmadd52luq {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 {%k1} {z} # 64-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"() | ||
| %2 = call <8 x i64> @llvm.x86.avx512.vpmadd52l.uq.512(<8 x i64> %a0, <8 x i64> %a1, <8 x i64> %a2) | ||
| %3 = load i8, ptr %mask | ||
| %4 = bitcast i8 %3 to <8 x i1> | ||
| %5 = select <8 x i1> %4, <8 x i64> %2, <8 x i64> zeroinitializer | ||
| ret <8 x i64> %5 | ||
| } | ||
|
|
||
| define <8 x i64> @stack_fold_vpmadd52luq_maskz_commuted(<8 x i64> %a0, <8 x i64> %a1, <8 x i64> %a2, ptr %mask) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52luq_maskz_commuted: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: movzbl (%rdi), %eax | ||
| ; CHECK-NEXT: kmovw %eax, %k1 | ||
| ; CHECK-NEXT: vpmadd52luq {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 {%k1} {z} # 64-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"() | ||
| %2 = call <8 x i64> @llvm.x86.avx512.vpmadd52l.uq.512(<8 x i64> %a0, <8 x i64> %a2, <8 x i64> %a1) | ||
| %3 = load i8, ptr %mask | ||
| %4 = bitcast i8 %3 to <8 x i1> | ||
| %5 = select <8 x i1> %4, <8 x i64> %2, <8 x i64> zeroinitializer | ||
| ret <8 x i64> %5 | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,119 @@ | ||
| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | ||
| ; RUN: llc -O3 -disable-peephole -mtriple=x86_64-unknown-unknown -mattr=+avxifma < %s | FileCheck %s | ||
|
|
||
| declare <2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64>, <2 x i64>, <2 x i64>) | ||
| declare <4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64>, <4 x i64>, <4 x i64>) | ||
| declare <2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64>, <2 x i64>, <2 x i64>) | ||
| declare <4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64>, <4 x i64>, <4 x i64>) | ||
|
|
||
| define <2 x i64> @stack_fold_vpmadd52huq(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52huq: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: {vex} vpmadd52huq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm0 # 16-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() | ||
| %2 = call <2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2) | ||
| ret <2 x i64> %2 | ||
| } | ||
|
|
||
| define <2 x i64> @stack_fold_vpmadd52huq_commuted(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52huq_commuted: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: {vex} vpmadd52huq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm0 # 16-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() | ||
| %2 = call <2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64> %a0, <2 x i64> %a2, <2 x i64> %a1) | ||
| ret <2 x i64> %2 | ||
| } | ||
|
|
||
| define <4 x i64> @stack_fold_vpmadd52huq_256(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52huq_256: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: {vex} vpmadd52huq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm0 # 32-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() | ||
| %2 = call <4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2) | ||
| ret <4 x i64> %2 | ||
| } | ||
|
|
||
| define <4 x i64> @stack_fold_vpmadd52huq_256_commuted(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52huq_256_commuted: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: {vex} vpmadd52huq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm0 # 32-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() | ||
| %2 = call <4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64> %a0, <4 x i64> %a2, <4 x i64> %a1) | ||
| ret <4 x i64> %2 | ||
| } | ||
|
|
||
| define <2 x i64> @stack_fold_vpmadd52luq(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52luq: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: {vex} vpmadd52luq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm0 # 16-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() | ||
| %2 = call <2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2) | ||
| ret <2 x i64> %2 | ||
| } | ||
|
|
||
| define <2 x i64> @stack_fold_vpmadd52luq_commuted(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52luq_commuted: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: {vex} vpmadd52luq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm0 # 16-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() | ||
| %2 = call <2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64> %a0, <2 x i64> %a2, <2 x i64> %a1) | ||
| ret <2 x i64> %2 | ||
| } | ||
|
|
||
| define <4 x i64> @stack_fold_vpmadd52luq_256(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52luq_256: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: {vex} vpmadd52luq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm0 # 32-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() | ||
| %2 = call <4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2) | ||
| ret <4 x i64> %2 | ||
| } | ||
|
|
||
| define <4 x i64> @stack_fold_vpmadd52luq_256_commuted(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2) { | ||
| ; CHECK-LABEL: stack_fold_vpmadd52luq_256_commuted: | ||
| ; CHECK: # %bb.0: | ||
| ; CHECK-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill | ||
| ; CHECK-NEXT: #APP | ||
| ; CHECK-NEXT: nop | ||
| ; CHECK-NEXT: #NO_APP | ||
| ; CHECK-NEXT: {vex} vpmadd52luq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm0 # 32-byte Folded Reload | ||
| ; CHECK-NEXT: retq | ||
| %1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{flags}"() | ||
| %2 = call <4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64> %a0, <4 x i64> %a2, <4 x i64> %a1) | ||
| ret <4 x i64> %2 | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,115 @@ | ||
| # RUN: llvm-mc --disassemble %s -triple=i686 | FileCheck %s --check-prefixes=ATT | ||
| # RUN: llvm-mc --disassemble %s -triple=i686 -x86-asm-syntax=intel --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL | ||
|
|
||
| # ATT: {vex} vpmadd52huq %ymm4, %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52huq ymm2, ymm3, ymm4 | ||
| 0xc4,0xe2,0xe5,0xb5,0xd4 | ||
|
|
||
| # ATT: {vex} vpmadd52huq %xmm4, %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52huq xmm2, xmm3, xmm4 | ||
| 0xc4,0xe2,0xe1,0xb5,0xd4 | ||
|
|
||
| # ATT: {vex} vpmadd52huq 268435456(%esp,%esi,8), %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [esp + 8*esi + 268435456] | ||
| 0xc4,0xe2,0xe5,0xb5,0x94,0xf4,0x00,0x00,0x00,0x10 | ||
|
|
||
| # ATT: {vex} vpmadd52huq 291(%edi,%eax,4), %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [edi + 4*eax + 291] | ||
| 0xc4,0xe2,0xe5,0xb5,0x94,0x87,0x23,0x01,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52huq (%eax), %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [eax] | ||
| 0xc4,0xe2,0xe5,0xb5,0x10 | ||
|
|
||
| # ATT: {vex} vpmadd52huq -1024(,%ebp,2), %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [2*ebp - 1024] | ||
| 0xc4,0xe2,0xe5,0xb5,0x14,0x6d,0x00,0xfc,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52huq 4064(%ecx), %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [ecx + 4064] | ||
| 0xc4,0xe2,0xe5,0xb5,0x91,0xe0,0x0f,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52huq -4096(%edx), %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [edx - 4096] | ||
| 0xc4,0xe2,0xe5,0xb5,0x92,0x00,0xf0,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52huq 268435456(%esp,%esi,8), %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [esp + 8*esi + 268435456] | ||
| 0xc4,0xe2,0xe1,0xb5,0x94,0xf4,0x00,0x00,0x00,0x10 | ||
|
|
||
| # ATT: {vex} vpmadd52huq 291(%edi,%eax,4), %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [edi + 4*eax + 291] | ||
| 0xc4,0xe2,0xe1,0xb5,0x94,0x87,0x23,0x01,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52huq (%eax), %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [eax] | ||
| 0xc4,0xe2,0xe1,0xb5,0x10 | ||
|
|
||
| # ATT: {vex} vpmadd52huq -512(,%ebp,2), %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [2*ebp - 512] | ||
| 0xc4,0xe2,0xe1,0xb5,0x14,0x6d,0x00,0xfe,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52huq 2032(%ecx), %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [ecx + 2032] | ||
| 0xc4,0xe2,0xe1,0xb5,0x91,0xf0,0x07,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52huq -2048(%edx), %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [edx - 2048] | ||
| 0xc4,0xe2,0xe1,0xb5,0x92,0x00,0xf8,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52luq %ymm4, %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52luq ymm2, ymm3, ymm4 | ||
| 0xc4,0xe2,0xe5,0xb4,0xd4 | ||
|
|
||
| # ATT: {vex} vpmadd52luq %xmm4, %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52luq xmm2, xmm3, xmm4 | ||
| 0xc4,0xe2,0xe1,0xb4,0xd4 | ||
|
|
||
| # ATT: {vex} vpmadd52luq 268435456(%esp,%esi,8), %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [esp + 8*esi + 268435456] | ||
| 0xc4,0xe2,0xe5,0xb4,0x94,0xf4,0x00,0x00,0x00,0x10 | ||
|
|
||
| # ATT: {vex} vpmadd52luq 291(%edi,%eax,4), %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [edi + 4*eax + 291] | ||
| 0xc4,0xe2,0xe5,0xb4,0x94,0x87,0x23,0x01,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52luq (%eax), %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [eax] | ||
| 0xc4,0xe2,0xe5,0xb4,0x10 | ||
|
|
||
| # ATT: {vex} vpmadd52luq -1024(,%ebp,2), %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [2*ebp - 1024] | ||
| 0xc4,0xe2,0xe5,0xb4,0x14,0x6d,0x00,0xfc,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52luq 4064(%ecx), %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [ecx + 4064] | ||
| 0xc4,0xe2,0xe5,0xb4,0x91,0xe0,0x0f,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52luq -4096(%edx), %ymm3, %ymm2 | ||
| # INTEL: {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [edx - 4096] | ||
| 0xc4,0xe2,0xe5,0xb4,0x92,0x00,0xf0,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52luq 268435456(%esp,%esi,8), %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [esp + 8*esi + 268435456] | ||
| 0xc4,0xe2,0xe1,0xb4,0x94,0xf4,0x00,0x00,0x00,0x10 | ||
|
|
||
| # ATT: {vex} vpmadd52luq 291(%edi,%eax,4), %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [edi + 4*eax + 291] | ||
| 0xc4,0xe2,0xe1,0xb4,0x94,0x87,0x23,0x01,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52luq (%eax), %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [eax] | ||
| 0xc4,0xe2,0xe1,0xb4,0x10 | ||
|
|
||
| # ATT: {vex} vpmadd52luq -512(,%ebp,2), %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [2*ebp - 512] | ||
| 0xc4,0xe2,0xe1,0xb4,0x14,0x6d,0x00,0xfe,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52luq 2032(%ecx), %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [ecx + 2032] | ||
| 0xc4,0xe2,0xe1,0xb4,0x91,0xf0,0x07,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52luq -2048(%edx), %xmm3, %xmm2 | ||
| # INTEL: {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [edx - 2048] | ||
| 0xc4,0xe2,0xe1,0xb4,0x92,0x00,0xf8,0xff,0xff | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,115 @@ | ||
| # RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s --check-prefixes=ATT | ||
| # RUN: llvm-mc --disassemble %s -triple=x86_64 -x86-asm-syntax=intel --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL | ||
|
|
||
| # ATT: {vex} vpmadd52huq %ymm14, %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52huq ymm12, ymm13, ymm14 | ||
| 0xc4,0x42,0x95,0xb5,0xe6 | ||
|
|
||
| # ATT: {vex} vpmadd52huq %xmm14, %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52huq xmm12, xmm13, xmm14 | ||
| 0xc4,0x42,0x91,0xb5,0xe6 | ||
|
|
||
| # ATT: {vex} vpmadd52huq 268435456(%rbp,%r14,8), %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [rbp + 8*r14 + 268435456] | ||
| 0xc4,0x22,0x95,0xb5,0xa4,0xf5,0x00,0x00,0x00,0x10 | ||
|
|
||
| # ATT: {vex} vpmadd52huq 291(%r8,%rax,4), %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [r8 + 4*rax + 291] | ||
| 0xc4,0x42,0x95,0xb5,0xa4,0x80,0x23,0x01,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52huq (%rip), %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [rip] | ||
| 0xc4,0x62,0x95,0xb5,0x25,0x00,0x00,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52huq -1024(,%rbp,2), %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [2*rbp - 1024] | ||
| 0xc4,0x62,0x95,0xb5,0x24,0x6d,0x00,0xfc,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52huq 4064(%rcx), %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [rcx + 4064] | ||
| 0xc4,0x62,0x95,0xb5,0xa1,0xe0,0x0f,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52huq -4096(%rdx), %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [rdx - 4096] | ||
| 0xc4,0x62,0x95,0xb5,0xa2,0x00,0xf0,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52huq 268435456(%rbp,%r14,8), %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [rbp + 8*r14 + 268435456] | ||
| 0xc4,0x22,0x91,0xb5,0xa4,0xf5,0x00,0x00,0x00,0x10 | ||
|
|
||
| # ATT: {vex} vpmadd52huq 291(%r8,%rax,4), %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [r8 + 4*rax + 291] | ||
| 0xc4,0x42,0x91,0xb5,0xa4,0x80,0x23,0x01,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52huq (%rip), %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [rip] | ||
| 0xc4,0x62,0x91,0xb5,0x25,0x00,0x00,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52huq -512(,%rbp,2), %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [2*rbp - 512] | ||
| 0xc4,0x62,0x91,0xb5,0x24,0x6d,0x00,0xfe,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52huq 2032(%rcx), %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [rcx + 2032] | ||
| 0xc4,0x62,0x91,0xb5,0xa1,0xf0,0x07,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52huq -2048(%rdx), %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [rdx - 2048] | ||
| 0xc4,0x62,0x91,0xb5,0xa2,0x00,0xf8,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52luq %ymm14, %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52luq ymm12, ymm13, ymm14 | ||
| 0xc4,0x42,0x95,0xb4,0xe6 | ||
|
|
||
| # ATT: {vex} vpmadd52luq %xmm14, %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52luq xmm12, xmm13, xmm14 | ||
| 0xc4,0x42,0x91,0xb4,0xe6 | ||
|
|
||
| # ATT: {vex} vpmadd52luq 268435456(%rbp,%r14,8), %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [rbp + 8*r14 + 268435456] | ||
| 0xc4,0x22,0x95,0xb4,0xa4,0xf5,0x00,0x00,0x00,0x10 | ||
|
|
||
| # ATT: {vex} vpmadd52luq 291(%r8,%rax,4), %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [r8 + 4*rax + 291] | ||
| 0xc4,0x42,0x95,0xb4,0xa4,0x80,0x23,0x01,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52luq (%rip), %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [rip] | ||
| 0xc4,0x62,0x95,0xb4,0x25,0x00,0x00,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52luq -1024(,%rbp,2), %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [2*rbp - 1024] | ||
| 0xc4,0x62,0x95,0xb4,0x24,0x6d,0x00,0xfc,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52luq 4064(%rcx), %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [rcx + 4064] | ||
| 0xc4,0x62,0x95,0xb4,0xa1,0xe0,0x0f,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52luq -4096(%rdx), %ymm13, %ymm12 | ||
| # INTEL: {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [rdx - 4096] | ||
| 0xc4,0x62,0x95,0xb4,0xa2,0x00,0xf0,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52luq 268435456(%rbp,%r14,8), %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [rbp + 8*r14 + 268435456] | ||
| 0xc4,0x22,0x91,0xb4,0xa4,0xf5,0x00,0x00,0x00,0x10 | ||
|
|
||
| # ATT: {vex} vpmadd52luq 291(%r8,%rax,4), %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [r8 + 4*rax + 291] | ||
| 0xc4,0x42,0x91,0xb4,0xa4,0x80,0x23,0x01,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52luq (%rip), %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [rip] | ||
| 0xc4,0x62,0x91,0xb4,0x25,0x00,0x00,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52luq -512(,%rbp,2), %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [2*rbp - 512] | ||
| 0xc4,0x62,0x91,0xb4,0x24,0x6d,0x00,0xfe,0xff,0xff | ||
|
|
||
| # ATT: {vex} vpmadd52luq 2032(%rcx), %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [rcx + 2032] | ||
| 0xc4,0x62,0x91,0xb4,0xa1,0xf0,0x07,0x00,0x00 | ||
|
|
||
| # ATT: {vex} vpmadd52luq -2048(%rdx), %xmm13, %xmm12 | ||
| # INTEL: {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [rdx - 2048] | ||
| 0xc4,0x62,0x91,0xb4,0xa2,0x00,0xf8,0xff,0xff | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,114 @@ | ||
| // RUN: llvm-mc -triple i686-unknown-unknown -mattr=+avxifma --show-encoding %s | FileCheck %s | ||
|
|
||
| // CHECK: {vex} vpmadd52huq %ymm4, %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0xd4] | ||
| {vex} vpmadd52huq %ymm4, %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq %xmm4, %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0xd4] | ||
| {vex} vpmadd52huq %xmm4, %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq 268435456(%esp,%esi,8), %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0x94,0xf4,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52huq 268435456(%esp,%esi,8), %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq 291(%edi,%eax,4), %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0x94,0x87,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52huq 291(%edi,%eax,4), %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq (%eax), %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0x10] | ||
| {vex} vpmadd52huq (%eax), %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq -1024(,%ebp,2), %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0x14,0x6d,0x00,0xfc,0xff,0xff] | ||
| {vex} vpmadd52huq -1024(,%ebp,2), %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq 4064(%ecx), %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0x91,0xe0,0x0f,0x00,0x00] | ||
| {vex} vpmadd52huq 4064(%ecx), %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq -4096(%edx), %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0x92,0x00,0xf0,0xff,0xff] | ||
| {vex} vpmadd52huq -4096(%edx), %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq 268435456(%esp,%esi,8), %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0x94,0xf4,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52huq 268435456(%esp,%esi,8), %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq 291(%edi,%eax,4), %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0x94,0x87,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52huq 291(%edi,%eax,4), %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq (%eax), %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0x10] | ||
| {vex} vpmadd52huq (%eax), %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq -512(,%ebp,2), %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0x14,0x6d,0x00,0xfe,0xff,0xff] | ||
| {vex} vpmadd52huq -512(,%ebp,2), %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq 2032(%ecx), %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0x91,0xf0,0x07,0x00,0x00] | ||
| {vex} vpmadd52huq 2032(%ecx), %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq -2048(%edx), %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0x92,0x00,0xf8,0xff,0xff] | ||
| {vex} vpmadd52huq -2048(%edx), %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq %ymm4, %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0xd4] | ||
| {vex} vpmadd52luq %ymm4, %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq %xmm4, %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0xd4] | ||
| {vex} vpmadd52luq %xmm4, %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq 268435456(%esp,%esi,8), %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0x94,0xf4,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52luq 268435456(%esp,%esi,8), %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq 291(%edi,%eax,4), %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0x94,0x87,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52luq 291(%edi,%eax,4), %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq (%eax), %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0x10] | ||
| {vex} vpmadd52luq (%eax), %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq -1024(,%ebp,2), %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0x14,0x6d,0x00,0xfc,0xff,0xff] | ||
| {vex} vpmadd52luq -1024(,%ebp,2), %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq 4064(%ecx), %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0x91,0xe0,0x0f,0x00,0x00] | ||
| {vex} vpmadd52luq 4064(%ecx), %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq -4096(%edx), %ymm3, %ymm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0x92,0x00,0xf0,0xff,0xff] | ||
| {vex} vpmadd52luq -4096(%edx), %ymm3, %ymm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq 268435456(%esp,%esi,8), %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0x94,0xf4,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52luq 268435456(%esp,%esi,8), %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq 291(%edi,%eax,4), %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0x94,0x87,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52luq 291(%edi,%eax,4), %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq (%eax), %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0x10] | ||
| {vex} vpmadd52luq (%eax), %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq -512(,%ebp,2), %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0x14,0x6d,0x00,0xfe,0xff,0xff] | ||
| {vex} vpmadd52luq -512(,%ebp,2), %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq 2032(%ecx), %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0x91,0xf0,0x07,0x00,0x00] | ||
| {vex} vpmadd52luq 2032(%ecx), %xmm3, %xmm2 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq -2048(%edx), %xmm3, %xmm2 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0x92,0x00,0xf8,0xff,0xff] | ||
| {vex} vpmadd52luq -2048(%edx), %xmm3, %xmm2 | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,114 @@ | ||
| // RUN: llvm-mc -triple=x86_64-unknown-unknown -mattr=+avxifma --show-encoding < %s | FileCheck %s | ||
|
|
||
| // CHECK: {vex} vpmadd52huq %ymm14, %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x42,0x95,0xb5,0xe6] | ||
| {vex} vpmadd52huq %ymm14, %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq %xmm14, %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x42,0x91,0xb5,0xe6] | ||
| {vex} vpmadd52huq %xmm14, %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq 268435456(%rbp,%r14,8), %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x22,0x95,0xb5,0xa4,0xf5,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52huq 268435456(%rbp,%r14,8), %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq 291(%r8,%rax,4), %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x42,0x95,0xb5,0xa4,0x80,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52huq 291(%r8,%rax,4), %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq (%rip), %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb5,0x25,0x00,0x00,0x00,0x00] | ||
| {vex} vpmadd52huq (%rip), %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq -1024(,%rbp,2), %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb5,0x24,0x6d,0x00,0xfc,0xff,0xff] | ||
| {vex} vpmadd52huq -1024(,%rbp,2), %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq 4064(%rcx), %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb5,0xa1,0xe0,0x0f,0x00,0x00] | ||
| {vex} vpmadd52huq 4064(%rcx), %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq -4096(%rdx), %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb5,0xa2,0x00,0xf0,0xff,0xff] | ||
| {vex} vpmadd52huq -4096(%rdx), %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq 268435456(%rbp,%r14,8), %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x22,0x91,0xb5,0xa4,0xf5,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52huq 268435456(%rbp,%r14,8), %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq 291(%r8,%rax,4), %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x42,0x91,0xb5,0xa4,0x80,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52huq 291(%r8,%rax,4), %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq (%rip), %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb5,0x25,0x00,0x00,0x00,0x00] | ||
| {vex} vpmadd52huq (%rip), %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq -512(,%rbp,2), %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb5,0x24,0x6d,0x00,0xfe,0xff,0xff] | ||
| {vex} vpmadd52huq -512(,%rbp,2), %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq 2032(%rcx), %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb5,0xa1,0xf0,0x07,0x00,0x00] | ||
| {vex} vpmadd52huq 2032(%rcx), %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq -2048(%rdx), %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb5,0xa2,0x00,0xf8,0xff,0xff] | ||
| {vex} vpmadd52huq -2048(%rdx), %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq %ymm14, %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x42,0x95,0xb4,0xe6] | ||
| {vex} vpmadd52luq %ymm14, %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq %xmm14, %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x42,0x91,0xb4,0xe6] | ||
| {vex} vpmadd52luq %xmm14, %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq 268435456(%rbp,%r14,8), %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x22,0x95,0xb4,0xa4,0xf5,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52luq 268435456(%rbp,%r14,8), %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq 291(%r8,%rax,4), %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x42,0x95,0xb4,0xa4,0x80,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52luq 291(%r8,%rax,4), %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq (%rip), %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb4,0x25,0x00,0x00,0x00,0x00] | ||
| {vex} vpmadd52luq (%rip), %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq -1024(,%rbp,2), %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb4,0x24,0x6d,0x00,0xfc,0xff,0xff] | ||
| {vex} vpmadd52luq -1024(,%rbp,2), %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq 4064(%rcx), %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb4,0xa1,0xe0,0x0f,0x00,0x00] | ||
| {vex} vpmadd52luq 4064(%rcx), %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq -4096(%rdx), %ymm13, %ymm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb4,0xa2,0x00,0xf0,0xff,0xff] | ||
| {vex} vpmadd52luq -4096(%rdx), %ymm13, %ymm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq 268435456(%rbp,%r14,8), %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x22,0x91,0xb4,0xa4,0xf5,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52luq 268435456(%rbp,%r14,8), %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq 291(%r8,%rax,4), %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x42,0x91,0xb4,0xa4,0x80,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52luq 291(%r8,%rax,4), %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq (%rip), %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb4,0x25,0x00,0x00,0x00,0x00] | ||
| {vex} vpmadd52luq (%rip), %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq -512(,%rbp,2), %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb4,0x24,0x6d,0x00,0xfe,0xff,0xff] | ||
| {vex} vpmadd52luq -512(,%rbp,2), %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq 2032(%rcx), %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb4,0xa1,0xf0,0x07,0x00,0x00] | ||
| {vex} vpmadd52luq 2032(%rcx), %xmm13, %xmm12 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq -2048(%rdx), %xmm13, %xmm12 | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb4,0xa2,0x00,0xf8,0xff,0xff] | ||
| {vex} vpmadd52luq -2048(%rdx), %xmm13, %xmm12 | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,114 @@ | ||
| // RUN: llvm-mc -triple i686-unknown-unknown -mattr=+avxifma -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm2, ymm3, ymm4 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0xd4] | ||
| {vex} vpmadd52huq ymm2, ymm3, ymm4 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm2, xmm3, xmm4 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0xd4] | ||
| {vex} vpmadd52huq xmm2, xmm3, xmm4 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [esp + 8*esi + 268435456] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0x94,0xf4,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [esp + 8*esi + 268435456] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [edi + 4*eax + 291] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0x94,0x87,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [edi + 4*eax + 291] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [eax] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0x10] | ||
| {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [eax] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [2*ebp - 1024] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0x14,0x6d,0x00,0xfc,0xff,0xff] | ||
| {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [2*ebp - 1024] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [ecx + 4064] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0x91,0xe0,0x0f,0x00,0x00] | ||
| {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [ecx + 4064] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [edx - 4096] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb5,0x92,0x00,0xf0,0xff,0xff] | ||
| {vex} vpmadd52huq ymm2, ymm3, ymmword ptr [edx - 4096] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [esp + 8*esi + 268435456] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0x94,0xf4,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [esp + 8*esi + 268435456] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [edi + 4*eax + 291] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0x94,0x87,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [edi + 4*eax + 291] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [eax] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0x10] | ||
| {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [eax] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [2*ebp - 512] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0x14,0x6d,0x00,0xfe,0xff,0xff] | ||
| {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [2*ebp - 512] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [ecx + 2032] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0x91,0xf0,0x07,0x00,0x00] | ||
| {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [ecx + 2032] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [edx - 2048] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb5,0x92,0x00,0xf8,0xff,0xff] | ||
| {vex} vpmadd52huq xmm2, xmm3, xmmword ptr [edx - 2048] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm2, ymm3, ymm4 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0xd4] | ||
| {vex} vpmadd52luq ymm2, ymm3, ymm4 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm2, xmm3, xmm4 | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0xd4] | ||
| {vex} vpmadd52luq xmm2, xmm3, xmm4 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [esp + 8*esi + 268435456] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0x94,0xf4,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [esp + 8*esi + 268435456] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [edi + 4*eax + 291] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0x94,0x87,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [edi + 4*eax + 291] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [eax] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0x10] | ||
| {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [eax] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [2*ebp - 1024] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0x14,0x6d,0x00,0xfc,0xff,0xff] | ||
| {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [2*ebp - 1024] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [ecx + 4064] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0x91,0xe0,0x0f,0x00,0x00] | ||
| {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [ecx + 4064] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [edx - 4096] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe5,0xb4,0x92,0x00,0xf0,0xff,0xff] | ||
| {vex} vpmadd52luq ymm2, ymm3, ymmword ptr [edx - 4096] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [esp + 8*esi + 268435456] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0x94,0xf4,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [esp + 8*esi + 268435456] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [edi + 4*eax + 291] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0x94,0x87,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [edi + 4*eax + 291] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [eax] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0x10] | ||
| {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [eax] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [2*ebp - 512] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0x14,0x6d,0x00,0xfe,0xff,0xff] | ||
| {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [2*ebp - 512] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [ecx + 2032] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0x91,0xf0,0x07,0x00,0x00] | ||
| {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [ecx + 2032] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [edx - 2048] | ||
| // CHECK: encoding: [0xc4,0xe2,0xe1,0xb4,0x92,0x00,0xf8,0xff,0xff] | ||
| {vex} vpmadd52luq xmm2, xmm3, xmmword ptr [edx - 2048] | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,114 @@ | ||
| // RUN: llvm-mc -triple x86_64-unknown-unknown -mattr=+avxifma -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm12, ymm13, ymm14 | ||
| // CHECK: encoding: [0xc4,0x42,0x95,0xb5,0xe6] | ||
| {vex} vpmadd52huq ymm12, ymm13, ymm14 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm12, xmm13, xmm14 | ||
| // CHECK: encoding: [0xc4,0x42,0x91,0xb5,0xe6] | ||
| {vex} vpmadd52huq xmm12, xmm13, xmm14 | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [rbp + 8*r14 + 268435456] | ||
| // CHECK: encoding: [0xc4,0x22,0x95,0xb5,0xa4,0xf5,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [rbp + 8*r14 + 268435456] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [r8 + 4*rax + 291] | ||
| // CHECK: encoding: [0xc4,0x42,0x95,0xb5,0xa4,0x80,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [r8 + 4*rax + 291] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [rip] | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb5,0x25,0x00,0x00,0x00,0x00] | ||
| {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [rip] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [2*rbp - 1024] | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb5,0x24,0x6d,0x00,0xfc,0xff,0xff] | ||
| {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [2*rbp - 1024] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [rcx + 4064] | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb5,0xa1,0xe0,0x0f,0x00,0x00] | ||
| {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [rcx + 4064] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [rdx - 4096] | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb5,0xa2,0x00,0xf0,0xff,0xff] | ||
| {vex} vpmadd52huq ymm12, ymm13, ymmword ptr [rdx - 4096] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [rbp + 8*r14 + 268435456] | ||
| // CHECK: encoding: [0xc4,0x22,0x91,0xb5,0xa4,0xf5,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [rbp + 8*r14 + 268435456] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [r8 + 4*rax + 291] | ||
| // CHECK: encoding: [0xc4,0x42,0x91,0xb5,0xa4,0x80,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [r8 + 4*rax + 291] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [rip] | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb5,0x25,0x00,0x00,0x00,0x00] | ||
| {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [rip] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [2*rbp - 512] | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb5,0x24,0x6d,0x00,0xfe,0xff,0xff] | ||
| {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [2*rbp - 512] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [rcx + 2032] | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb5,0xa1,0xf0,0x07,0x00,0x00] | ||
| {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [rcx + 2032] | ||
|
|
||
| // CHECK: {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [rdx - 2048] | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb5,0xa2,0x00,0xf8,0xff,0xff] | ||
| {vex} vpmadd52huq xmm12, xmm13, xmmword ptr [rdx - 2048] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm12, ymm13, ymm14 | ||
| // CHECK: encoding: [0xc4,0x42,0x95,0xb4,0xe6] | ||
| {vex} vpmadd52luq ymm12, ymm13, ymm14 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm12, xmm13, xmm14 | ||
| // CHECK: encoding: [0xc4,0x42,0x91,0xb4,0xe6] | ||
| {vex} vpmadd52luq xmm12, xmm13, xmm14 | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [rbp + 8*r14 + 268435456] | ||
| // CHECK: encoding: [0xc4,0x22,0x95,0xb4,0xa4,0xf5,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [rbp + 8*r14 + 268435456] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [r8 + 4*rax + 291] | ||
| // CHECK: encoding: [0xc4,0x42,0x95,0xb4,0xa4,0x80,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [r8 + 4*rax + 291] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [rip] | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb4,0x25,0x00,0x00,0x00,0x00] | ||
| {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [rip] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [2*rbp - 1024] | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb4,0x24,0x6d,0x00,0xfc,0xff,0xff] | ||
| {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [2*rbp - 1024] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [rcx + 4064] | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb4,0xa1,0xe0,0x0f,0x00,0x00] | ||
| {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [rcx + 4064] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [rdx - 4096] | ||
| // CHECK: encoding: [0xc4,0x62,0x95,0xb4,0xa2,0x00,0xf0,0xff,0xff] | ||
| {vex} vpmadd52luq ymm12, ymm13, ymmword ptr [rdx - 4096] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [rbp + 8*r14 + 268435456] | ||
| // CHECK: encoding: [0xc4,0x22,0x91,0xb4,0xa4,0xf5,0x00,0x00,0x00,0x10] | ||
| {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [rbp + 8*r14 + 268435456] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [r8 + 4*rax + 291] | ||
| // CHECK: encoding: [0xc4,0x42,0x91,0xb4,0xa4,0x80,0x23,0x01,0x00,0x00] | ||
| {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [r8 + 4*rax + 291] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [rip] | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb4,0x25,0x00,0x00,0x00,0x00] | ||
| {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [rip] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [2*rbp - 512] | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb4,0x24,0x6d,0x00,0xfe,0xff,0xff] | ||
| {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [2*rbp - 512] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [rcx + 2032] | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb4,0xa1,0xf0,0x07,0x00,0x00] | ||
| {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [rcx + 2032] | ||
|
|
||
| // CHECK: {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [rdx - 2048] | ||
| // CHECK: encoding: [0xc4,0x62,0x91,0xb4,0xa2,0x00,0xf8,0xff,0xff] | ||
| {vex} vpmadd52luq xmm12, xmm13, xmmword ptr [rdx - 2048] | ||
|
|