[Clang][AVX512][BUILTIN] Adding intrinsics for set1
Differential Revision: http://reviews.llvm.org/D20562 llvm-svn: 270825
This commit is contained in:
		
							parent
							
								
									8cce333abd
								
							
						
					
					
						commit
						6f08cebf36
					
				| 
						 | 
					@ -27,6 +27,8 @@
 | 
				
			||||||
#ifndef __AVX512FINTRIN_H
 | 
					#ifndef __AVX512FINTRIN_H
 | 
				
			||||||
#define __AVX512FINTRIN_H
 | 
					#define __AVX512FINTRIN_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef char __v64qi __attribute__((__vector_size__(64)));
 | 
				
			||||||
 | 
					typedef short __v32hi __attribute__((__vector_size__(64)));
 | 
				
			||||||
typedef double __v8df __attribute__((__vector_size__(64)));
 | 
					typedef double __v8df __attribute__((__vector_size__(64)));
 | 
				
			||||||
typedef float __v16sf __attribute__((__vector_size__(64)));
 | 
					typedef float __v16sf __attribute__((__vector_size__(64)));
 | 
				
			||||||
typedef long long __v8di __attribute__((__vector_size__(64)));
 | 
					typedef long long __v8di __attribute__((__vector_size__(64)));
 | 
				
			||||||
| 
						 | 
					@ -285,6 +287,28 @@ _mm512_set1_pd(double __w)
 | 
				
			||||||
  return (__m512d){ __w, __w, __w, __w, __w, __w, __w, __w };
 | 
					  return (__m512d){ __w, __w, __w, __w, __w, __w, __w, __w };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline __m512i __DEFAULT_FN_ATTRS
 | 
				
			||||||
 | 
					_mm512_set1_epi8(char __w)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return (__m512i)(__v64qi){ __w, __w, __w, __w, __w, __w, __w, __w,
 | 
				
			||||||
 | 
					                             __w, __w, __w, __w, __w, __w, __w, __w,
 | 
				
			||||||
 | 
					                             __w, __w, __w, __w, __w, __w, __w, __w,
 | 
				
			||||||
 | 
					                             __w, __w, __w, __w, __w, __w, __w, __w,
 | 
				
			||||||
 | 
					                             __w, __w, __w, __w, __w, __w, __w, __w,
 | 
				
			||||||
 | 
					                             __w, __w, __w, __w, __w, __w, __w, __w,
 | 
				
			||||||
 | 
					                             __w, __w, __w, __w, __w, __w, __w, __w,
 | 
				
			||||||
 | 
					                             __w, __w, __w, __w, __w, __w, __w, __w  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline __m512i __DEFAULT_FN_ATTRS
 | 
				
			||||||
 | 
					_mm512_set1_epi16(short __w)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return (__m512i)(__v32hi){ __w, __w, __w, __w, __w, __w, __w, __w,
 | 
				
			||||||
 | 
					                             __w, __w, __w, __w, __w, __w, __w, __w,
 | 
				
			||||||
 | 
					                             __w, __w, __w, __w, __w, __w, __w, __w,
 | 
				
			||||||
 | 
					                             __w, __w, __w, __w, __w, __w, __w, __w };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static __inline __m512i __DEFAULT_FN_ATTRS
 | 
					static __inline __m512i __DEFAULT_FN_ATTRS
 | 
				
			||||||
_mm512_set1_epi32(int __s)
 | 
					_mm512_set1_epi32(int __s)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5951,6 +5951,36 @@ __m512d test_mm512_castpd128_pd512(__m128d __A) {
 | 
				
			||||||
  return _mm512_castpd128_pd512(__A); 
 | 
					  return _mm512_castpd128_pd512(__A); 
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__m512d test_mm512_set1_epi8(char d)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  // CHECK-LABEL: @test_mm512_set1_epi8
 | 
				
			||||||
 | 
					  // CHECK: insertelement <64 x i8> {{.*}}, i32 0
 | 
				
			||||||
 | 
					  // CHECK: insertelement <64 x i8> {{.*}}, i32 1
 | 
				
			||||||
 | 
					  // CHECK: insertelement <64 x i8> {{.*}}, i32 2
 | 
				
			||||||
 | 
					  // CHECK: insertelement <64 x i8> {{.*}}, i32 3
 | 
				
			||||||
 | 
					  // CHECK: insertelement <64 x i8> {{.*}}, i32 4
 | 
				
			||||||
 | 
					  // CHECK: insertelement <64 x i8> {{.*}}, i32 5
 | 
				
			||||||
 | 
					  // CHECK: insertelement <64 x i8> {{.*}}, i32 6
 | 
				
			||||||
 | 
					  // CHECK: insertelement <64 x i8> {{.*}}, i32 7
 | 
				
			||||||
 | 
					  // CHECK: insertelement <64 x i8> {{.*}}, i32 63
 | 
				
			||||||
 | 
					  return _mm512_set1_epi8(d);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__m512d test_mm512_set1_epi16(short d)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  // CHECK-LABEL: @test_mm512_set1_epi16
 | 
				
			||||||
 | 
					  // CHECK: insertelement <32 x i16> {{.*}}, i32 0
 | 
				
			||||||
 | 
					  // CHECK: insertelement <32 x i16> {{.*}}, i32 1
 | 
				
			||||||
 | 
					  // CHECK: insertelement <32 x i16> {{.*}}, i32 2
 | 
				
			||||||
 | 
					  // CHECK: insertelement <32 x i16> {{.*}}, i32 3
 | 
				
			||||||
 | 
					  // CHECK: insertelement <32 x i16> {{.*}}, i32 4
 | 
				
			||||||
 | 
					  // CHECK: insertelement <32 x i16> {{.*}}, i32 5
 | 
				
			||||||
 | 
					  // CHECK: insertelement <32 x i16> {{.*}}, i32 6
 | 
				
			||||||
 | 
					  // CHECK: insertelement <32 x i16> {{.*}}, i32 7
 | 
				
			||||||
 | 
					  // CHECK: insertelement <32 x i16> {{.*}}, i32 31
 | 
				
			||||||
 | 
					  return _mm512_set1_epi16(d);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__m512d test_mm512_castpd256_pd512(__m256d a)
 | 
					__m512d test_mm512_castpd256_pd512(__m256d a)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  // CHECK-LABEL: @test_mm512_castpd256_pd512
 | 
					  // CHECK-LABEL: @test_mm512_castpd256_pd512
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue