brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · 8b941c4 Raw
102 lines · c
1// REQUIRES: x86-registered-target2// RUN: %clang_cc1 -O3 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-unknown-unknown -target-feature +avx -target-feature +avx512f  -target-feature +avx512fp16 -S -o - | FileCheck %s3 4 5#include <immintrin.h>6 7__m256d test_mm256_castpd128_pd256(__m128d A) {8  // CHECK-LABEL: test_mm256_castpd128_pd2569  // CHECK:         # %bb.0:10  // CHECK-NEXT:    # kill: def $xmm0 killed $xmm0 def $ymm011  // CHECK-NEXT:    ret{{[l|q]}}12  return _mm256_castpd128_pd256(A);13}14 15__m256 test_mm256_castps128_ps256(__m128 A) {16  // CHECK-LABEL: test_mm256_castps128_ps25617  // CHECK:         # %bb.0:18  // CHECK-NEXT:    # kill: def $xmm0 killed $xmm0 def $ymm019  // CHECK-NEXT:    ret{{[l|q]}}20  return _mm256_castps128_ps256(A);21}22 23__m256i test_mm256_castsi128_si256(__m128i A) {24  // CHECK-LABEL: test_mm256_castsi128_si25625  // CHECK:         # %bb.0:26  // CHECK-NEXT:    # kill: def $xmm0 killed $xmm0 def $ymm027  // CHECK-NEXT:    ret{{[l|q]}}28  return _mm256_castsi128_si256(A);29}30 31__m256h test_mm256_castph128_ph256(__m128h A) {32  // CHECK-LABEL: test_mm256_castph128_ph25633  // CHECK:         # %bb.0:34  // CHECK-NEXT:    # kill: def $xmm0 killed $xmm0 def $ymm035  // CHECK-NEXT:    ret{{[l|q]}}36  return _mm256_castph128_ph256(A);37}38 39__m512h test_mm512_castph128_ph512(__m128h A) {40  // CHECK-LABEL: test_mm512_castph128_ph51241  // CHECK:         # %bb.0:42  // CHECK-NEXT:    # kill: def $xmm0 killed $xmm0 def $zmm043  // CHECK-NEXT:    ret{{[l|q]}}44  return _mm512_castph128_ph512(A);45}46 47__m512h test_mm512_castph256_ph512(__m256h A) {48  // CHECK-LABEL: test_mm512_castph256_ph51249  // CHECK:         # %bb.0:50  // CHECK-NEXT:    # kill: def $ymm0 killed $ymm0 def $zmm051  // CHECK-NEXT:    ret{{[l|q]}}52  return _mm512_castph256_ph512(A);53}54 55__m512d test_mm512_castpd256_pd512(__m256d A){56  // CHECK-LABEL: test_mm512_castpd256_pd51257  // CHECK:         # %bb.0:58  // CHECK-NEXT:    # kill: def $ymm0 killed $ymm0 def $zmm059  // CHECK-NEXT:    ret{{[l|q]}}60  return _mm512_castpd256_pd512(A);61}62 63__m512 test_mm512_castps256_ps512(__m256 A){64  // CHECK-LABEL: test_mm512_castps256_ps51265  // CHECK:         # %bb.0:66  // CHECK-NEXT:    # kill: def $ymm0 killed $ymm0 def $zmm067  // CHECK-NEXT:    ret{{[l|q]}}68  return _mm512_castps256_ps512(A);69}70 71__m512d test_mm512_castpd128_pd512(__m128d A){72  // CHECK-LABEL: test_mm512_castpd128_pd51273  // CHECK:         # %bb.0:74  // CHECK-NEXT:    # kill: def $xmm0 killed $xmm0 def $zmm075  // CHECK-NEXT:    ret{{[l|q]}}76  return _mm512_castpd128_pd512(A);77}78 79__m512 test_mm512_castps128_ps512(__m128 A){80  // CHECK-LABEL: test_mm512_castps128_ps51281  // CHECK:         # %bb.0:82  // CHECK-NEXT:    # kill: def $xmm0 killed $xmm0 def $zmm083  // CHECK-NEXT:    ret{{[l|q]}}84  return _mm512_castps128_ps512(A);85}86 87__m512i test_mm512_castsi128_si512(__m128i A){88  // CHECK-LABEL: test_mm512_castsi128_si51289  // CHECK:         # %bb.0:90  // CHECK-NEXT:    # kill: def $xmm0 killed $xmm0 def $zmm091  // CHECK-NEXT:    ret{{[l|q]}}92  return _mm512_castsi128_si512(A);93}94 95__m512i test_mm512_castsi256_si512(__m256i A){96  // CHECK-LABEL: test_mm512_castsi256_si51297  // CHECK:         # %bb.0:98  // CHECK-NEXT:    # kill: def $ymm0 killed $ymm0 def $zmm099  // CHECK-NEXT:    ret{{[l|q]}}100  return _mm512_castsi256_si512(A);101}102