brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 8c32e65 Raw
45 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=skx -mattr=+avx512fp16 | FileCheck %s3 4define dso_local void @test_v8f16_v32f16(ptr %x_addr, ptr %y_addr) {5; CHECK-LABEL: test_v8f16_v32f16:6; CHECK:       ## %bb.0: ## %entry7; CHECK-NEXT:    vbroadcastf32x4 {{.*#+}} zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]8; CHECK-NEXT:    vmovdqa64 %zmm0, (%rsi)9; CHECK-NEXT:    vzeroupper10; CHECK-NEXT:    retq11entry:12  %0 = load <8 x half>, ptr %x_addr, align 1613  %shuffle.i58 = shufflevector <8 x half> %0, <8 x half> %0, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>14  store <32 x half> %shuffle.i58, ptr %y_addr, align 6415  ret void16}17 18define dso_local void @test_v8f16_v16f16(ptr %x_addr, ptr %y_addr) {19; CHECK-LABEL: test_v8f16_v16f16:20; CHECK:       ## %bb.0: ## %entry21; CHECK-NEXT:    vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1]22; CHECK-NEXT:    vmovdqa %ymm0, (%rsi)23; CHECK-NEXT:    vzeroupper24; CHECK-NEXT:    retq25entry:26  %0 = load <8 x half>, ptr %x_addr, align 1627  %shuffle.i58 = shufflevector <8 x half> %0, <8 x half> %0, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>28  store <16 x half> %shuffle.i58, ptr %y_addr, align 6429  ret void30}31 32define dso_local void @test_v16f16_v32f16(ptr %x_addr, ptr %y_addr) {33; CHECK-LABEL: test_v16f16_v32f16:34; CHECK:       ## %bb.0: ## %entry35; CHECK-NEXT:    vbroadcastf64x4 {{.*#+}} zmm0 = mem[0,1,2,3,0,1,2,3]36; CHECK-NEXT:    vmovdqa64 %zmm0, (%rsi)37; CHECK-NEXT:    vzeroupper38; CHECK-NEXT:    retq39entry:40  %0 = load <16 x half>, ptr %x_addr, align 1641  %shuffle.i58 = shufflevector <16 x half> %0, <16 x half> %0, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>42  store <32 x half> %shuffle.i58, ptr %y_addr, align 6443  ret void44}45