Skip to content

Commit feefba6

Browse files
author
Leon Clark
committed
Update tests.
1 parent 95136f6 commit feefba6

File tree

1 file changed

+70
-4
lines changed

1 file changed

+70
-4
lines changed

llvm/test/CodeGen/X86/build-vector-512.ll

Lines changed: 70 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2-
; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefix=AVX-32
3-
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefix=AVX-64
4-
; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512f,+avx512bw | FileCheck %s --check-prefix=AVX-32
5-
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512bw | FileCheck %s --check-prefix=AVX-64
2+
; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefixes=AVX-32,AVX512F-32
3+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefixes=AVX-64,AVX512F-64
4+
; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512f,+avx512bw | FileCheck %s --check-prefixes=AVX-32,AVX512BW-32
5+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512bw | FileCheck %s --check-prefixes=AVX-64,AVX512BW-64
66

77
define <8 x double> @test_buildvector_v8f64(double %a0, double %a1, double %a2, double %a3, double %a4, double %a5, double %a6, double %a7) {
88
; AVX-32-LABEL: test_buildvector_v8f64:
@@ -480,6 +480,37 @@ define <64 x i8> @test_buildvector_v64i8(i8 %a0, i8 %a1, i8 %a2, i8 %a3, i8 %a4,
480480
; build vectors of repeated elements
481481

482482
define <8 x double> @test_buildvector_8f64_2_var(double %a0, double %a1) {
483+
; AVX512F-32-LABEL: test_buildvector_8f64_2_var:
484+
; AVX512F-32: # %bb.0:
485+
; AVX512F-32-NEXT: vbroadcastsd {{[0-9]+}}(%esp), %zmm0
486+
; AVX512F-32-NEXT: movb $-126, %al
487+
; AVX512F-32-NEXT: kmovw %eax, %k1
488+
; AVX512F-32-NEXT: vbroadcastsd {{[0-9]+}}(%esp), %zmm0 {%k1}
489+
; AVX512F-32-NEXT: retl
490+
;
491+
; AVX512F-64-LABEL: test_buildvector_8f64_2_var:
492+
; AVX512F-64: # %bb.0:
493+
; AVX512F-64-NEXT: vbroadcastsd %xmm0, %zmm0
494+
; AVX512F-64-NEXT: movb $-126, %al
495+
; AVX512F-64-NEXT: kmovw %eax, %k1
496+
; AVX512F-64-NEXT: vbroadcastsd %xmm1, %zmm0 {%k1}
497+
; AVX512F-64-NEXT: retq
498+
;
499+
; AVX512BW-32-LABEL: test_buildvector_8f64_2_var:
500+
; AVX512BW-32: # %bb.0:
501+
; AVX512BW-32-NEXT: vbroadcastsd {{[0-9]+}}(%esp), %zmm0
502+
; AVX512BW-32-NEXT: movb $-126, %al
503+
; AVX512BW-32-NEXT: kmovd %eax, %k1
504+
; AVX512BW-32-NEXT: vbroadcastsd {{[0-9]+}}(%esp), %zmm0 {%k1}
505+
; AVX512BW-32-NEXT: retl
506+
;
507+
; AVX512BW-64-LABEL: test_buildvector_8f64_2_var:
508+
; AVX512BW-64: # %bb.0:
509+
; AVX512BW-64-NEXT: vbroadcastsd %xmm0, %zmm0
510+
; AVX512BW-64-NEXT: movb $-126, %al
511+
; AVX512BW-64-NEXT: kmovd %eax, %k1
512+
; AVX512BW-64-NEXT: vbroadcastsd %xmm1, %zmm0 {%k1}
513+
; AVX512BW-64-NEXT: retq
483514
%v0 = insertelement <8 x double> poison, double %a0, i32 0
484515
%v1 = insertelement <8 x double> %v0, double %a1, i32 1
485516
%v2 = insertelement <8 x double> %v1, double %a0, i32 2
@@ -492,6 +523,41 @@ define <8 x double> @test_buildvector_8f64_2_var(double %a0, double %a1) {
492523
}
493524

494525
define <8 x double> @test_buildvector_8f64_2_load(ptr %p0, ptr %p1) {
526+
; AVX512F-32-LABEL: test_buildvector_8f64_2_load:
527+
; AVX512F-32: # %bb.0:
528+
; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
529+
; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %ecx
530+
; AVX512F-32-NEXT: vbroadcastsd (%ecx), %zmm0
531+
; AVX512F-32-NEXT: movb $-126, %cl
532+
; AVX512F-32-NEXT: kmovw %ecx, %k1
533+
; AVX512F-32-NEXT: vbroadcastsd (%eax), %zmm0 {%k1}
534+
; AVX512F-32-NEXT: retl
535+
;
536+
; AVX512F-64-LABEL: test_buildvector_8f64_2_load:
537+
; AVX512F-64: # %bb.0:
538+
; AVX512F-64-NEXT: vbroadcastsd (%rdi), %zmm0
539+
; AVX512F-64-NEXT: movb $-126, %al
540+
; AVX512F-64-NEXT: kmovw %eax, %k1
541+
; AVX512F-64-NEXT: vbroadcastsd (%rsi), %zmm0 {%k1}
542+
; AVX512F-64-NEXT: retq
543+
;
544+
; AVX512BW-32-LABEL: test_buildvector_8f64_2_load:
545+
; AVX512BW-32: # %bb.0:
546+
; AVX512BW-32-NEXT: movl {{[0-9]+}}(%esp), %eax
547+
; AVX512BW-32-NEXT: movl {{[0-9]+}}(%esp), %ecx
548+
; AVX512BW-32-NEXT: vbroadcastsd (%ecx), %zmm0
549+
; AVX512BW-32-NEXT: movb $-126, %cl
550+
; AVX512BW-32-NEXT: kmovd %ecx, %k1
551+
; AVX512BW-32-NEXT: vbroadcastsd (%eax), %zmm0 {%k1}
552+
; AVX512BW-32-NEXT: retl
553+
;
554+
; AVX512BW-64-LABEL: test_buildvector_8f64_2_load:
555+
; AVX512BW-64: # %bb.0:
556+
; AVX512BW-64-NEXT: vbroadcastsd (%rdi), %zmm0
557+
; AVX512BW-64-NEXT: movb $-126, %al
558+
; AVX512BW-64-NEXT: kmovd %eax, %k1
559+
; AVX512BW-64-NEXT: vbroadcastsd (%rsi), %zmm0 {%k1}
560+
; AVX512BW-64-NEXT: retq
495561
%a0 = load double, ptr %p0
496562
%a1 = load double, ptr %p1
497563
%v0 = insertelement <8 x double> poison, double %a0, i32 0

0 commit comments

Comments
 (0)