blob: 506c2e10b6891bba04844309ed958e6a42a0d001 [file] [edit]
// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 6
// RUN: %clang_cc1 -triple powerpc64le-unknown-unknown -target-cpu future \
// RUN: -emit-llvm %s -o - | FileCheck %s
// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -target-cpu future \
// RUN: -emit-llvm %s -o - | FileCheck %s
// CHECK-LABEL: @test_aes_encrypt_paired(
// CHECK: {{.*}}call <256 x i1> @llvm.ppc.aes.encrypt.paired(<256 x i1> {{.*}}, <256 x i1> {{.*}}, i32 0)
// CHECK: ret void
void test_aes_encrypt_paired(__vector_pair *vpp1, __vector_pair *vpp2, __vector_pair *resp) {
__vector_pair vp1 = *vpp1;
__vector_pair vp2 = *vpp2;
__vector_pair res = __builtin_aes_encrypt_paired(vp1, vp2, 0);
*resp = res;
}
// CHECK-LABEL: @test_aes128_encrypt_paired(
// CHECK: {{.*}}call <256 x i1> @llvm.ppc.aes.encrypt.paired(<256 x i1> {{.*}}, <256 x i1> {{.*}}, i32 0)
// CHECK: ret void
void test_aes128_encrypt_paired(__vector_pair *vpp1, __vector_pair *vpp2, __vector_pair *resp) {
__vector_pair vp1 = *vpp1;
__vector_pair vp2 = *vpp2;
__vector_pair res = __builtin_aes128_encrypt_paired(vp1, vp2);
*resp = res;
}
// CHECK-LABEL: @test_aes192_encrypt_paired(
// CHECK: {{.*}}call <256 x i1> @llvm.ppc.aes.encrypt.paired(<256 x i1> {{.*}}, <256 x i1> {{.*}}, i32 1)
// CHECK: ret void
void test_aes192_encrypt_paired(__vector_pair *vpp1, __vector_pair *vpp2, __vector_pair *resp) {
__vector_pair vp1 = *vpp1;
__vector_pair vp2 = *vpp2;
__vector_pair res = __builtin_aes192_encrypt_paired(vp1, vp2);
*resp = res;
}
// CHECK-LABEL: @test_aes256_encrypt_paired(
// CHECK: {{.*}}call <256 x i1> @llvm.ppc.aes.encrypt.paired(<256 x i1> {{.*}}, <256 x i1> {{.*}}, i32 2)
// CHECK: ret void
void test_aes256_encrypt_paired(__vector_pair *vpp1, __vector_pair *vpp2, __vector_pair *resp) {
__vector_pair vp1 = *vpp1;
__vector_pair vp2 = *vpp2;
__vector_pair res = __builtin_aes256_encrypt_paired(vp1, vp2);
*resp = res;
}
// CHECK-LABEL: @test_aes_decrypt_paired(
// CHECK: {{.*}}call <256 x i1> @llvm.ppc.aes.decrypt.paired(<256 x i1> {{.*}}, <256 x i1> {{.*}}, i32 0)
// CHECK: ret void
void test_aes_decrypt_paired(__vector_pair *vpp1, __vector_pair *vpp2, __vector_pair *resp) {
__vector_pair vp1 = *vpp1;
__vector_pair vp2 = *vpp2;
__vector_pair res = __builtin_aes_decrypt_paired(vp1, vp2, 0);
*resp = res;
}
// CHECK-LABEL: @test_aes128_decrypt_paired(
// CHECK: {{.*}}call <256 x i1> @llvm.ppc.aes.decrypt.paired(<256 x i1> {{.*}}, <256 x i1> {{.*}}, i32 0)
// CHECK: ret void
void test_aes128_decrypt_paired(__vector_pair *vpp1, __vector_pair *vpp2, __vector_pair *resp) {
__vector_pair vp1 = *vpp1;
__vector_pair vp2 = *vpp2;
__vector_pair res = __builtin_aes128_decrypt_paired(vp1, vp2);
*resp = res;
}
// CHECK-LABEL: @test_aes192_decrypt_paired(
// CHECK: {{.*}}call <256 x i1> @llvm.ppc.aes.decrypt.paired(<256 x i1> {{.*}}, <256 x i1> {{.*}}, i32 1)
// CHECK: ret void
void test_aes192_decrypt_paired(__vector_pair *vpp1, __vector_pair *vpp2, __vector_pair *resp) {
__vector_pair vp1 = *vpp1;
__vector_pair vp2 = *vpp2;
__vector_pair res = __builtin_aes192_decrypt_paired(vp1, vp2);
*resp = res;
}
// CHECK-LABEL: @test_aes256_decrypt_paired(
// CHECK: {{.*}}call <256 x i1> @llvm.ppc.aes.decrypt.paired(<256 x i1> {{.*}}, <256 x i1> {{.*}}, i32 2)
// CHECK: ret void
void test_aes256_decrypt_paired(__vector_pair *vpp1, __vector_pair *vpp2, __vector_pair *resp) {
__vector_pair vp1 = *vpp1;
__vector_pair vp2 = *vpp2;
__vector_pair res = __builtin_aes256_decrypt_paired(vp1, vp2);
*resp = res;
}
// CHECK-LABEL: @test_aes_genlastkey_paired(
// CHECK: {{.*}}call <256 x i1> @llvm.ppc.aes.genlastkey.paired(<256 x i1> {{.*}}, i32 0)
// CHECK: ret void
void test_aes_genlastkey_paired(__vector_pair *vpp1, __vector_pair *resp) {
__vector_pair vp1 = *vpp1;
__vector_pair res = __builtin_aes_genlastkey_paired(vp1, 0);
*resp = res;
}
// CHECK-LABEL: @test_aes128_genlastkey_paired(
// CHECK: {{.*}}call <256 x i1> @llvm.ppc.aes.genlastkey.paired(<256 x i1> {{.*}}, i32 0)
// CHECK: ret void
void test_aes128_genlastkey_paired(__vector_pair *vpp1, __vector_pair *resp) {
__vector_pair vp1 = *vpp1;
__vector_pair res = __builtin_aes128_genlastkey_paired(vp1);
*resp = res;
}
// CHECK-LABEL: @test_aes192_genlastkey_paired(
// CHECK: {{.*}}call <256 x i1> @llvm.ppc.aes.genlastkey.paired(<256 x i1> {{.*}}, i32 1)
// CHECK: ret void
void test_aes192_genlastkey_paired(__vector_pair *vpp1, __vector_pair *resp) {
__vector_pair vp1 = *vpp1;
__vector_pair res = __builtin_aes192_genlastkey_paired(vp1);
*resp = res;
}
// CHECK-LABEL: @test_aes256_genlastkey_paired(
// CHECK: {{.*}}call <256 x i1> @llvm.ppc.aes.genlastkey.paired(<256 x i1> {{.*}}, i32 2)
// CHECK: ret void
void test_aes256_genlastkey_paired(__vector_pair *vpp1, __vector_pair *resp) {
__vector_pair vp1 = *vpp1;
__vector_pair res = __builtin_aes256_genlastkey_paired(vp1);
*resp = res;
}
// CHECK-LABEL: @test_galois_field_mult(
// CHECK: {{.*}}call <16 x i8> @llvm.ppc.galois.field.mult(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 0)
// CHECK: ret <16 x i8>
vector unsigned char test_galois_field_mult(vector unsigned char a, vector unsigned char b) {
return __builtin_galois_field_mult(a, b, 0);
}
// CHECK-LABEL: @test_galois_field_mult_gcm(
// CHECK: {{.*}}call <16 x i8> @llvm.ppc.galois.field.mult(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 0)
// CHECK: ret <16 x i8>
vector unsigned char test_galois_field_mult_gcm(vector unsigned char a, vector unsigned char b) {
return __builtin_galois_field_mult_gcm(a, b);
}
// CHECK-LABEL: @test_galois_field_mult_xts(
// CHECK: {{.*}}call <16 x i8> @llvm.ppc.galois.field.mult(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 1)
// CHECK: ret <16 x i8>
vector unsigned char test_galois_field_mult_xts(vector unsigned char a, vector unsigned char b) {
return __builtin_galois_field_mult_xts(a, b);
}