// REQUIRES: target=x86{{.*}} // RUN: mlir-opt %s \ // RUN: -convert-vector-to-llvm="enable-x86" -convert-to-llvm \ // RUN: -reconcile-unrealized-casts | \ // RUN: mlir-translate --mlir-to-llvmir | \ // RUN: llc -mcpu=sapphirerapids | \ // RUN: FileCheck %s func.func @avx512bf16_dot_128(%src: vector<4xf32>, %a: vector<8xbf16>, %b: vector<8xbf16>) -> vector<4xf32> { %0 = x86.avx512.dot %src, %a, %b : vector<8xbf16> -> vector<4xf32> return %0 : vector<4xf32> } // CHECK-LABEL: avx512bf16_dot_128: // CHECK: vdpbf16ps{{.*}}%xmm func.func @avx512bf16_dot_256(%src: vector<8xf32>, %a: vector<16xbf16>, %b: vector<16xbf16>) -> vector<8xf32> { %0 = x86.avx512.dot %src, %a, %b : vector<16xbf16> -> vector<8xf32> return %0 : vector<8xf32> } // CHECK-LABEL: avx512bf16_dot_256: // CHECK: vdpbf16ps{{.*}}%ymm func.func @avx512bf16_dot_512(%src: vector<16xf32>, %a: vector<32xbf16>, %b: vector<32xbf16>) -> vector<16xf32> { %0 = x86.avx512.dot %src, %a, %b : vector<32xbf16> -> vector<16xf32> return %0 : vector<16xf32> } // CHECK-LABEL: avx512bf16_dot_512: // CHECK: vdpbf16ps{{.*}}%zmm