1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -mattr=+avx | FileCheck %s
6 define <8 x i32> @vshift00(<8 x i32> %a) nounwind readnone {
7 %s = shl <8 x i32> %a, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32
14 define <16 x i16> @vshift01(<16 x i16> %a) nounwind readnone {
15 %s = shl <16 x i16> %a, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>
21 define <4 x i64> @vshift02(<4 x i64> %a) nounwind readnone {
22 %s = shl <4 x i64> %a, <i64 2, i64 2, i64 2, i64 2>
26 ;;; Logical Shift right
29 define <8 x i32> @vshift03(<8 x i32> %a) nounwind readnone {
30 %s = lshr <8 x i32> %a, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32
37 define <16 x i16> @vshift04(<16 x i16> %a) nounwind readnone {
38 %s = lshr <16 x i16> %a, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>
44 define <4 x i64> @vshift05(<4 x i64> %a) nounwind readnone {
45 %s = lshr <4 x i64> %a, <i64 2, i64 2, i64 2, i64 2>
49 ;;; Arithmetic Shift right
52 define <8 x i32> @vshift06(<8 x i32> %a) nounwind readnone {
53 %s = ashr <8 x i32> %a, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32
60 define <16 x i16> @vshift07(<16 x i16> %a) nounwind readnone {
61 %s = ashr <16 x i16> %a, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>
73 define <32 x i8> @vshift09(<32 x i8> %a) nounwind readnone {
74 %s = ashr <32 x i8> %a, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
81 define <32 x i8> @vshift10(<32 x i8> %a) nounwind readnone {
82 %s = ashr <32 x i8> %a, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>
90 define <32 x i8> @vshift11(<32 x i8> %a) nounwind readnone {
91 %s = lshr <32 x i8> %a, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
99 define <32 x i8> @vshift12(<32 x i8> %a) nounwind readnone {
100 %s = shl <32 x i8> %a, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
104 ;;; Support variable shifts
106 ; CHECK: vextractf128 $1
108 ; CHECK: vextractf128 $1
110 define <8 x i32> @vshift08(<8 x i32> %a) nounwind {
111 %bitop = shl <8 x i32> <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>, %a