1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=core-avx2 -mattr=+avx2 | FileCheck %s
4 define <4 x i64> @vpaddq(<4 x i64> %i, <4 x i64> %j) nounwind readnone {
5 %x = add <4 x i64> %i, %j
10 define <8 x i32> @vpaddd(<8 x i32> %i, <8 x i32> %j) nounwind readnone {
11 %x = add <8 x i32> %i, %j
16 define <16 x i16> @vpaddw(<16 x i16> %i, <16 x i16> %j) nounwind readnone {
17 %x = add <16 x i16> %i, %j
22 define <32 x i8> @vpaddb(<32 x i8> %i, <32 x i8> %j) nounwind readnone {
23 %x = add <32 x i8> %i, %j
28 define <4 x i64> @vpsubq(<4 x i64> %i, <4 x i64> %j) nounwind readnone {
29 %x = sub <4 x i64> %i, %j
34 define <8 x i32> @vpsubd(<8 x i32> %i, <8 x i32> %j) nounwind readnone {
35 %x = sub <8 x i32> %i, %j
40 define <16 x i16> @vpsubw(<16 x i16> %i, <16 x i16> %j) nounwind readnone {
41 %x = sub <16 x i16> %i, %j
46 define <32 x i8> @vpsubb(<32 x i8> %i, <32 x i8> %j) nounwind readnone {
47 %x = sub <32 x i8> %i, %j
52 define <8 x i32> @vpmulld(<8 x i32> %i, <8 x i32> %j) nounwind readnone {
53 %x = mul <8 x i32> %i, %j
58 define <16 x i16> @vpmullw(<16 x i16> %i, <16 x i16> %j) nounwind readnone {
59 %x = mul <16 x i16> %i, %j
63 ; CHECK: vpmuludq %ymm
64 ; CHECK-NEXT: vpsrlq $32, %ymm
65 ; CHECK-NEXT: vpmuludq %ymm
66 ; CHECK-NEXT: vpsllq $32, %ymm
67 ; CHECK-NEXT: vpaddq %ymm
68 ; CHECK-NEXT: vpsrlq $32, %ymm
69 ; CHECK-NEXT: vpmuludq %ymm
70 ; CHECK-NEXT: vpsllq $32, %ymm
71 ; CHECK-NEXT: vpaddq %ymm
72 define <4 x i64> @mul-v4i64(<4 x i64> %i, <4 x i64> %j) nounwind readnone {
73 %x = mul <4 x i64> %i, %j