Skip to content

Commit 8ffefea

Browse files
committed
Add SVE zero RHS tests.
1 parent 2c3d0d8 commit 8ffefea

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

llvm/test/Transforms/InstCombine/AArch64/aes-intrinsics.ll

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ declare <16 x i8> @llvm.aarch64.crypto.aesd(<16 x i8>, <16 x i8>) #0
7575

7676
; SVE
7777

78-
define <vscale x 16 x i8> @combineXorAeseZeroSVE(<vscale x 16 x i8> %data, <vscale x 16 x i8> %key) {
79-
; CHECK-LABEL: define <vscale x 16 x i8> @combineXorAeseZeroSVE(
78+
define <vscale x 16 x i8> @combineXorAeseZeroLhsSVE(<vscale x 16 x i8> %data, <vscale x 16 x i8> %key) {
79+
; CHECK-LABEL: define <vscale x 16 x i8> @combineXorAeseZeroLhsSVE(
8080
; CHECK-SAME: <vscale x 16 x i8> [[DATA:%.*]], <vscale x 16 x i8> [[KEY:%.*]]) {
8181
; CHECK-NEXT: [[DATA_AES:%.*]] = tail call <vscale x 16 x i8> @llvm.aarch64.sve.aese(<vscale x 16 x i8> [[DATA]], <vscale x 16 x i8> [[KEY]])
8282
; CHECK-NEXT: ret <vscale x 16 x i8> [[DATA_AES]]
@@ -86,8 +86,19 @@ define <vscale x 16 x i8> @combineXorAeseZeroSVE(<vscale x 16 x i8> %data, <vsca
8686
ret <vscale x 16 x i8> %data.aes
8787
}
8888

89-
define <vscale x 16 x i8> @combineXorAesdZeroSVE(<vscale x 16 x i8> %data, <vscale x 16 x i8> %key) {
90-
; CHECK-LABEL: define <vscale x 16 x i8> @combineXorAesdZeroSVE(
89+
define <vscale x 16 x i8> @combineXorAeseZeroRhsSVE(<vscale x 16 x i8> %data, <vscale x 16 x i8> %key) {
90+
; CHECK-LABEL: define <vscale x 16 x i8> @combineXorAeseZeroRhsSVE(
91+
; CHECK-SAME: <vscale x 16 x i8> [[DATA:%.*]], <vscale x 16 x i8> [[KEY:%.*]]) {
92+
; CHECK-NEXT: [[DATA_AES:%.*]] = tail call <vscale x 16 x i8> @llvm.aarch64.sve.aese(<vscale x 16 x i8> [[DATA]], <vscale x 16 x i8> [[KEY]])
93+
; CHECK-NEXT: ret <vscale x 16 x i8> [[DATA_AES]]
94+
;
95+
%data.xor = xor <vscale x 16 x i8> %data, %key
96+
%data.aes = tail call <vscale x 16 x i8> @llvm.aarch64.sve.aese(<vscale x 16 x i8> %data.xor, <vscale x 16 x i8> zeroinitializer)
97+
ret <vscale x 16 x i8> %data.aes
98+
}
99+
100+
define <vscale x 16 x i8> @combineXorAesdZeroLhsSVE(<vscale x 16 x i8> %data, <vscale x 16 x i8> %key) {
101+
; CHECK-LABEL: define <vscale x 16 x i8> @combineXorAesdZeroLhsSVE(
91102
; CHECK-SAME: <vscale x 16 x i8> [[DATA:%.*]], <vscale x 16 x i8> [[KEY:%.*]]) {
92103
; CHECK-NEXT: [[DATA_AES:%.*]] = tail call <vscale x 16 x i8> @llvm.aarch64.sve.aesd(<vscale x 16 x i8> [[DATA]], <vscale x 16 x i8> [[KEY]])
93104
; CHECK-NEXT: ret <vscale x 16 x i8> [[DATA_AES]]
@@ -97,5 +108,16 @@ define <vscale x 16 x i8> @combineXorAesdZeroSVE(<vscale x 16 x i8> %data, <vsca
97108
ret <vscale x 16 x i8> %data.aes
98109
}
99110

111+
define <vscale x 16 x i8> @combineXorAesdZeroRhsSVE(<vscale x 16 x i8> %data, <vscale x 16 x i8> %key) {
112+
; CHECK-LABEL: define <vscale x 16 x i8> @combineXorAesdZeroRhsSVE(
113+
; CHECK-SAME: <vscale x 16 x i8> [[DATA:%.*]], <vscale x 16 x i8> [[KEY:%.*]]) {
114+
; CHECK-NEXT: [[DATA_AES:%.*]] = tail call <vscale x 16 x i8> @llvm.aarch64.sve.aesd(<vscale x 16 x i8> [[DATA]], <vscale x 16 x i8> [[KEY]])
115+
; CHECK-NEXT: ret <vscale x 16 x i8> [[DATA_AES]]
116+
;
117+
%data.xor = xor <vscale x 16 x i8> %data, %key
118+
%data.aes = tail call <vscale x 16 x i8> @llvm.aarch64.sve.aesd(<vscale x 16 x i8> %data.xor, <vscale x 16 x i8> zeroinitializer)
119+
ret <vscale x 16 x i8> %data.aes
120+
}
121+
100122
declare <vscale x 16 x i8> @llvm.aarch64.sve.aese(<vscale x 16 x i8>, <vscale x 16 x i8>) #0
101123
declare <vscale x 16 x i8> @llvm.aarch64.sve.aesd(<vscale x 16 x i8>, <vscale x 16 x i8>) #0

0 commit comments

Comments
 (0)