13ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// REQUIRES: powerpc-registered-target 23ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// RUN: %clang_cc1 -faltivec -triple powerpc64le-unknown-unknown \ 33ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// RUN: -target-feature +crypto -target-feature +power8-vector \ 43ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// RUN: -emit-llvm %s -o - | FileCheck %s 53ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 63ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// RUN: %clang_cc1 -faltivec -triple powerpc64-unknown-unknown \ 73ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// RUN: -target-feature +crypto -target-feature +power8-vector \ 83ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// RUN: -emit-llvm %s -o - | FileCheck %s 93ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar#include <altivec.h> 103ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar#define B_INIT1 { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, \ 113ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10 }; 123ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar#define B_INIT2 { 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, \ 133ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x70 }; 143ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar#define H_INIT1 { 0x0102, 0x0304, 0x0506, 0x0708, \ 153ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 0x090A, 0x0B0C, 0x0D0E, 0x0F10 }; 163ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar#define H_INIT2 { 0x7172, 0x7374, 0x7576, 0x7778, \ 173ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 0x797A, 0x7B7C, 0x7D7E, 0x7F70 }; 183ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar#define W_INIT1 { 0x01020304, 0x05060708, \ 193ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 0x090A0B0C, 0x0D0E0F10 }; 203ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar#define W_INIT2 { 0x71727374, 0x75767778, \ 213ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 0x797A7B7C, 0x7D7E7F70 }; 223ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar#define D_INIT1 { 0x0102030405060708, \ 233ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 0x090A0B0C0D0E0F10 }; 243ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar#define D_INIT2 { 0x7172737475767778, \ 253ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 0x797A7B7C7D7E7F70 }; 263ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 273ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <16 x i8> @test_vpmsumb 283ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned char test_vpmsumb(void) 293ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 303ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned char a = B_INIT1 313ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned char b = B_INIT2 323ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vpmsumb(a, b); 3387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpmsumb 343ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 353ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 363ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <8 x i16> @test_vpmsumh 373ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned short test_vpmsumh(void) 383ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 393ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned short a = H_INIT1 403ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned short b = H_INIT2 413ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vpmsumh(a, b); 4287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpmsumh 433ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 443ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 453ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <4 x i32> @test_vpmsumw 463ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned int test_vpmsumw(void) 473ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 483ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned int a = W_INIT1 493ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned int b = W_INIT2 503ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vpmsumw(a, b); 5187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpmsumw 523ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 533ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 543ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vpmsumd 553ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vpmsumd(void) 563ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 573ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 583ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long b = D_INIT2 593ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vpmsumd(a, b); 6087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpmsumd 613ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 623ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 633ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vsbox 643ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vsbox(void) 653ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 663ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 673ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vsbox(a); 683ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vsbox 693ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 703ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 713ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <16 x i8> @test_vpermxorb 723ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned char test_vpermxorb(void) 733ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 743ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned char a = B_INIT1 753ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned char b = B_INIT2 763ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned char c = B_INIT2 773ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vpermxor(a, b, c); 783ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpermxor 793ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 803ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 813ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <8 x i16> @test_vpermxorh 823ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned short test_vpermxorh(void) 833ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 843ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned short a = H_INIT1 853ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned short b = H_INIT2 863ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned short c = H_INIT2 873ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vpermxor(a, b, c); 883ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpermxor 893ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 903ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 913ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <4 x i32> @test_vpermxorw 923ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned int test_vpermxorw(void) 933ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 943ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned int a = W_INIT1 953ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned int b = W_INIT2 963ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned int c = W_INIT2 973ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vpermxor(a, b, c); 983ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpermxor 993ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 1003ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 1013ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vpermxord 1023ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vpermxord(void) 1033ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 1043ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 1053ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long b = D_INIT2 1063ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long c = D_INIT2 1073ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vpermxor(a, b, c); 1083ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpermxor 1093ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 1103ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 1113ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vcipher 1123ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vcipher(void) 1133ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 1143ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 1153ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long b = D_INIT2 1163ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vcipher(a, b); 1173ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vcipher 1183ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 1193ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 1203ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vcipherlast 1213ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vcipherlast(void) 1223ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 1233ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 1243ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long b = D_INIT2 1253ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vcipherlast(a, b); 1263ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vcipherlast 1273ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 1283ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 12987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: @test_vncipher 1303ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vncipher(void) 1313ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 1323ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 1333ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long b = D_INIT2 1343ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vncipher(a, b); 1353ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vncipher 1363ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 1373ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 1383ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vncipherlast 1393ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vncipherlast(void) 1403ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 1413ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 1423ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long b = D_INIT2 1433ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vncipherlast(a, b); 1443ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vncipherlast 1453ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 1463ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 1473ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <4 x i32> @test_vshasigmaw 1483ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned int test_vshasigmaw(void) 1493ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 1503ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned int a = W_INIT1 1513ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vshasigmaw(a, 1, 15); 1523ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vshasigmaw 1533ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 1543ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 1553ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vshasigmad 1563ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vshasigmad(void) 1573ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 1583ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT2 1593ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_altivec_crypto_vshasigmad(a, 1, 15); 1603ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vshasigmad 1613ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 1623ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 1633ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// Test cases for the builtins the way they are exposed to 1643ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// users through altivec.h 1653ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <16 x i8> @test_vpmsumb_e 1663ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned char test_vpmsumb_e(void) 1673ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 1683ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned char a = B_INIT1 1693ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned char b = B_INIT2 1703ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vpmsumb(a, b); 17187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpmsumb 1723ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 1733ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 1743ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <8 x i16> @test_vpmsumh_e 1753ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned short test_vpmsumh_e(void) 1763ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 1773ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned short a = H_INIT1 1783ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned short b = H_INIT2 1793ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vpmsumb(a, b); 18087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpmsumh 1813ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 1823ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 1833ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <4 x i32> @test_vpmsumw_e 1843ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned int test_vpmsumw_e(void) 1853ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 1863ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned int a = W_INIT1 1873ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned int b = W_INIT2 1883ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vpmsumb(a, b); 18987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpmsumw 1903ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 1913ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 1923ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vpmsumd_e 1933ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vpmsumd_e(void) 1943ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 1953ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 1963ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long b = D_INIT2 1973ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vpmsumb(a, b); 19887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpmsumd 1993ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 2003ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 2013ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vsbox_e 2023ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vsbox_e(void) 2033ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 2043ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 2053ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vsbox(a); 2063ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vsbox 2073ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 2083ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 2093ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <16 x i8> @test_vpermxorb_e 2103ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned char test_vpermxorb_e(void) 2113ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 2123ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned char a = B_INIT1 2133ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned char b = B_INIT2 2143ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned char c = B_INIT2 2153ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vpermxor(a, b, c); 2163ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpermxor 2173ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 2183ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 2193ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <8 x i16> @test_vpermxorh_e 2203ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned short test_vpermxorh_e(void) 2213ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 2223ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned short a = H_INIT1 2233ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned short b = H_INIT2 2243ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned short c = H_INIT2 2253ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vpermxor(a, b, c); 22687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpermxor 2273ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 2283ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 2293ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <4 x i32> @test_vpermxorw_e 2303ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned int test_vpermxorw_e(void) 2313ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 2323ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned int a = W_INIT1 2333ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned int b = W_INIT2 2343ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned int c = W_INIT2 2353ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vpermxor(a, b, c); 2363ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpermxor 2373ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 2383ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 2393ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vpermxord_e 2403ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vpermxord_e(void) 2413ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 2423ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 2433ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long b = D_INIT2 2443ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long c = D_INIT2 2453ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vpermxor(a, b, c); 2463ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpermxor 2473ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 2483ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 2493ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vcipher_e 2503ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vcipher_e(void) 2513ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 2523ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 2533ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long b = D_INIT2 2543ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vcipher(a, b); 2553ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vcipher 2563ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 2573ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 2583ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vcipherlast_e 2593ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vcipherlast_e(void) 2603ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 2613ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 2623ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long b = D_INIT2 2633ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vcipherlast(a, b); 2643ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vcipherlast 2653ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 2663ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 2673ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vncipher_e 2683ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vncipher_e(void) 2693ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 2703ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 2713ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long b = D_INIT2 2723ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vncipher(a, b); 2733ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vncipher 2743ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 2753ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 2763ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vncipherlast_e 2773ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vncipherlast_e(void) 2783ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 2793ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT1 2803ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long b = D_INIT2 2813ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vncipherlast(a, b); 2823ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vncipherlast 2833ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 2843ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 2853ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <4 x i32> @test_vshasigmaw_e 2863ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned int test_vshasigmaw_e(void) 2873ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 2883ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned int a = W_INIT1 2893ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vshasigmaw(a, 1, 15); 2903ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vshasigmaw 2913ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 2923ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 2933ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-LABEL: define <2 x i64> @test_vshasigmad_e 2943ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarvector unsigned long long test_vshasigmad_e(void) 2953ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar{ 2963ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar vector unsigned long long a = D_INIT2 2973ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar return __builtin_crypto_vshasigmad(a, 0, 15); 2983ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vshasigmad 2993ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} 3003ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar 30187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: @test_vec_sbox_be 30287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvector unsigned char test_vec_sbox_be(void) 30387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 30487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned char a = B_INIT1 30587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return vec_sbox_be(a); 30687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vsbox 30787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 30887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 30987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: @test_vec_cipher_be 31087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvector unsigned char test_vec_cipher_be(void) 31187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 31287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned char a = B_INIT1 31387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned char b = B_INIT2 31487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return vec_cipher_be(a, b); 31587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vcipher 31687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 31787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 31887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: @test_vec_cipherlast_be 31987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvector unsigned char test_vec_cipherlast_be(void) 32087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 32187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned char a = B_INIT1 32287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned char b = B_INIT2 32387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return vec_cipherlast_be(a, b); 32487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vcipherlast 32587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 32687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 32787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: @test_vec_ncipher_be 32887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvector unsigned char test_vec_ncipher_be(void) 32987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 33087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned char a = B_INIT1 33187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned char b = B_INIT2 33287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return vec_ncipher_be(a, b); 33387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vncipher 33487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 33587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 33687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: @test_vec_ncipherlast_be 33787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvector unsigned char test_vec_ncipherlast_be(void) 33887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 33987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned char a = B_INIT1 34087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned char b = B_INIT2 34187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return vec_ncipherlast_be(a, b); 34287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vncipherlast 34387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 34487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 34587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: @test_vec_shasigma_bew 34687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvector unsigned int test_vec_shasigma_bew(void) 34787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 34887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned int a = W_INIT1 34987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return vec_shasigma_be(a, 1, 15); 35087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vshasigmaw 35187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 35287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 35387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: @test_vec_shasigma_bed 35487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvector unsigned long long test_vec_shasigma_bed(void) 35587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 35687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned long long a = D_INIT2 35787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return vec_shasigma_be(a, 1, 15); 35887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vshasigmad 35987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 36087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 36187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: @test_vec_pmsum_beb 36287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvector unsigned short test_vec_pmsum_beb(void) 36387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 36487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned char a = B_INIT1 36587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned char b = B_INIT2 36687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return vec_pmsum_be(a, b); 36787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpmsumb 36887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 36987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 37087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: @test_vec_pmsum_beh 37187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvector unsigned int test_vec_pmsum_beh(void) 37287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 37387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned short a = H_INIT1 37487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned short b = H_INIT2 37587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return vec_pmsum_be(a, b); 37687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpmsumh 37787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 37887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 37987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: @test_vec_pmsum_bew 38087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvector unsigned long long test_vec_pmsum_bew(void) 38187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 38287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned int a = W_INIT1 38387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned int b = W_INIT2 38487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return vec_pmsum_be(a, b); 38587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpmsumw 38687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 38787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 38887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: @test_vec_pmsum_bed 38987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvector unsigned __int128 test_vec_pmsum_bed(void) 39087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 39187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned long long a = D_INIT1 39287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar vector unsigned long long b = D_INIT2 39387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return vec_pmsum_be(a, b); 39487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: @llvm.ppc.altivec.crypto.vpmsumd 39587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 39687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 397