File tree 2 files changed +16
-1
lines changed
2 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -2485,6 +2485,10 @@ mlir::Value CIRGenFunction::emitCommonNeonBuiltinExpr(
2485
2485
argTypes.push_back (vTy);
2486
2486
break ;
2487
2487
}
2488
+ case NEON::BI__builtin_neon_vaeseq_u8: {
2489
+ intrincsName = " aarch64.crypto.aese" ;
2490
+ break ;
2491
+ }
2488
2492
case NEON::BI__builtin_neon_vpadd_v:
2489
2493
case NEON::BI__builtin_neon_vpaddq_v: {
2490
2494
intrincsName = mlir::isa<mlir::FloatType>(vTy.getEltType ())
Original file line number Diff line number Diff line change 4
4
// RUN: FileCheck --check-prefix=CIR --input-file=%t.cir %s
5
5
6
6
// RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon \
7
- // RUN: -target-feature +sha2 -target-feature +aes \
7
+ // RUN: -fclangir -target-feature +sha2 -target-feature +aes \
8
8
// RUN: -disable-O0-optnone -emit-llvm -o - %s \
9
9
// RUN: | opt -S -passes=mem2reg,simplifycfg -o %t.ll
10
10
// RUN: FileCheck --check-prefix=LLVM --input-file=%t.ll %s
@@ -23,3 +23,14 @@ uint8x16_t test_vaesmcq_u8(uint8x16_t data) {
23
23
// LLVM: [[RES:%.*]] = call <16 x i8> @llvm.aarch64.crypto.aesmc(<16 x i8> [[DATA]])
24
24
// LLVM: ret <16 x i8> [[RES]]
25
25
}
26
+
27
+ uint8x16_t test_vaeseq_u8 (uint8x16_t data , uint8x16_t key ) {
28
+ return vaeseq_u8 (data , key );
29
+
30
+ // CIR-LABEL: vaeseq_u8
31
+ // {{%.*}} = cir.llvm.intrinsic "aarch64.crypto.aese" {{%.*}} : (!cir.vector<!u8i x 16>) -> !cir.vector<!u8i x 16>
32
+
33
+ // LLVM: {{.*}}vaeseq_u8(<16 x i8>{{.*}}[[DATA:%.*]], <16 x i8>{{.*}}[[KEY:%.*]])
34
+ // LLVM: [[RES:%.*]] = call <16 x i8> @llvm.aarch64.crypto.aese(<16 x i8> [[DATA]], <16 x i8> [[KEY]])
35
+ // LLVM: ret <16 x i8> [[RES]]
36
+ }
You can’t perform that action at this time.
0 commit comments