Skip to content

Commit 52b1c76

Browse files
committed
fixup! [AArch64][llvm] Add support for vmmlaq_[f16,f32]_mf8 intrinsics
Split testcase files
1 parent 6df0af8 commit 52b1c76

File tree

2 files changed

+24
-15
lines changed

2 files changed

+24
-15
lines changed

clang/test/CodeGen/AArch64/v9.6a-neon-intrinsics.c renamed to clang/test/CodeGen/AArch64/v9.6a-neon-f16-intrinsics.c

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 5
2-
// RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon -target-feature +v9.6a -target-feature +f8f16mm -target-feature +f8f32mm -target-feature +fp8 \
2+
// RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon -target-feature +v9.6a -target-feature +f8f16mm -target-feature +fp8 \
33
// RUN: -disable-O0-optnone -emit-llvm -o - %s \
44
// RUN: | opt -S -passes=mem2reg,sroa \
55
// RUN: | FileCheck %s
@@ -23,17 +23,3 @@
2323
float16x8_t test_vmmlaq_f16_mf8(float16x8_t p0, mfloat8x16_t p1, mfloat8x16_t p2, fpm_t p3) {
2424
return vmmlaq_f16_mf8_fpm(p0, p1, p2, p3);
2525
}
26-
27-
// CHECK-LABEL: define dso_local <4 x float> @test_vmmlaq_f32_mf8(
28-
// CHECK-SAME: <4 x float> noundef [[P0:%.*]], <16 x i8> [[P1:%.*]], <16 x i8> [[P2:%.*]], i64 noundef [[P3:%.*]]) #[[ATTR0]] {
29-
// CHECK-NEXT: [[ENTRY:.*:]]
30-
// CHECK-NEXT: call void @llvm.aarch64.set.fpmr(i64 [[P3]])
31-
// CHECK-NEXT: [[FMMLA_I:%.*]] = bitcast <16 x i8> [[P1]] to <4 x float>
32-
// CHECK-NEXT: [[FMMLA1_I:%.*]] = bitcast <16 x i8> [[P2]] to <4 x float>
33-
// CHECK-NEXT: [[FMMLA2_I:%.*]] = call <4 x float> @llvm.aarch64.neon.fmmla.v4f32.v4f32(<4 x float> [[P0]], <4 x float> [[FMMLA_I]], <4 x float> [[FMMLA1_I]])
34-
// CHECK-NEXT: ret <4 x float> [[FMMLA2_I]]
35-
//
36-
float32x4_t test_vmmlaq_f32_mf8(float32x4_t p0, mfloat8x16_t p1, mfloat8x16_t p2, fpm_t p3) {
37-
return vmmlaq_f32_mf8_fpm(p0, p1, p2, p3);
38-
}
39-
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 5
2+
// RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon -target-feature +v9.6a -target-feature +f8f32mm -target-feature +fp8 \
3+
// RUN: -disable-O0-optnone -emit-llvm -o - %s \
4+
// RUN: | opt -S -passes=mem2reg,sroa \
5+
// RUN: | FileCheck %s
6+
7+
// REQUIRES: aarch64-registered-target
8+
9+
#include <arm_neon.h>
10+
11+
// CHECK-LABEL: define dso_local <4 x float> @test_vmmlaq_f32_mf8(
12+
// CHECK-SAME: <4 x float> noundef [[P0:%.*]], <16 x i8> [[P1:%.*]], <16 x i8> [[P2:%.*]], i64 noundef [[P3:%.*]]) #[[ATTR0:[0-9]+]] {
13+
// CHECK-NEXT: [[ENTRY:.*:]]
14+
// CHECK-NEXT: call void @llvm.aarch64.set.fpmr(i64 [[P3]])
15+
// CHECK-NEXT: [[FMMLA_I:%.*]] = bitcast <16 x i8> [[P1]] to <4 x float>
16+
// CHECK-NEXT: [[FMMLA1_I:%.*]] = bitcast <16 x i8> [[P2]] to <4 x float>
17+
// CHECK-NEXT: [[FMMLA2_I:%.*]] = call <4 x float> @llvm.aarch64.neon.fmmla.v4f32.v4f32(<4 x float> [[P0]], <4 x float> [[FMMLA_I]], <4 x float> [[FMMLA1_I]])
18+
// CHECK-NEXT: ret <4 x float> [[FMMLA2_I]]
19+
//
20+
float32x4_t test_vmmlaq_f32_mf8(float32x4_t p0, mfloat8x16_t p1, mfloat8x16_t p2, fpm_t p3) {
21+
return vmmlaq_f32_mf8_fpm(p0, p1, p2, p3);
22+
}
23+

0 commit comments

Comments
 (0)