1 | // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +vaes -emit-llvm -o - | FileCheck %s --check-prefix AVX |
2 | // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +vaes -target-feature +avx512f -emit-llvm -o - | FileCheck %s --check-prefixes AVX,AVX512 |
3 | |
4 | #include <immintrin.h> |
5 | |
6 | __m256i test_mm256_aesenc_epi128(__m256i __A, __m256i __B) { |
7 | // AVX-LABEL: @test_mm256_aesenc_epi128 |
8 | // AVX: @llvm.x86.aesni.aesenc.256 |
9 | return _mm256_aesenc_epi128(__A, __B); |
10 | } |
11 | |
12 | __m256i test_mm256_aesenclast_epi128(__m256i __A, __m256i __B) { |
13 | // AVX-LABEL: @test_mm256_aesenclast_epi128 |
14 | // AVX: @llvm.x86.aesni.aesenclast.256 |
15 | return _mm256_aesenclast_epi128(__A, __B); |
16 | } |
17 | |
18 | __m256i test_mm256_aesdec_epi128(__m256i __A, __m256i __B) { |
19 | // AVX-LABEL: @test_mm256_aesdec_epi128 |
20 | // AVX: @llvm.x86.aesni.aesdec.256 |
21 | return _mm256_aesdec_epi128(__A, __B); |
22 | } |
23 | |
24 | __m256i test_mm256_aesdeclast_epi128(__m256i __A, __m256i __B) { |
25 | // AVX-LABEL: @test_mm256_aesdeclast_epi128 |
26 | // AVX: @llvm.x86.aesni.aesdeclast.256 |
27 | return _mm256_aesdeclast_epi128(__A, __B); |
28 | } |
29 | |
30 | #ifdef __AVX512F__ |
31 | __m512i test_mm512_aesenc_epi128(__m512i __A, __m512i __B) { |
32 | // AVX512-LABEL: @test_mm512_aesenc_epi128 |
33 | // AVX512: @llvm.x86.aesni.aesenc.512 |
34 | return _mm512_aesenc_epi128(__A, __B); |
35 | } |
36 | |
37 | __m512i test_mm512_aesenclast_epi128(__m512i __A, __m512i __B) { |
38 | // AVX512-LABEL: @test_mm512_aesenclast_epi128 |
39 | // AVX512: @llvm.x86.aesni.aesenclast.512 |
40 | return _mm512_aesenclast_epi128(__A, __B); |
41 | } |
42 | |
43 | __m512i test_mm512_aesdec_epi128(__m512i __A, __m512i __B) { |
44 | // AVX512-LABEL: @test_mm512_aesdec_epi128 |
45 | // AVX512: @llvm.x86.aesni.aesdec.512 |
46 | return _mm512_aesdec_epi128(__A, __B); |
47 | } |
48 | |
49 | __m512i test_mm512_aesdeclast_epi128(__m512i __A, __m512i __B) { |
50 | // AVX512-LABEL: @test_mm512_aesdeclast_epi128 |
51 | // AVX512: @llvm.x86.aesni.aesdeclast.512 |
52 | return _mm512_aesdeclast_epi128(__A, __B); |
53 | } |
54 | #endif |
55 | |
56 | |