187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// RUN: %clang_cc1 -triple s390x-linux-gnu -target-cpu z13 -fzvector \ 287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// RUN: -O -emit-llvm -o - -W -Wall -Werror %s | FileCheck %s 387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector signed char sc, sc2; 587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector unsigned char uc, uc2; 687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector bool char bc, bc2; 787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector signed short ss, ss2; 987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector unsigned short us, us2; 1087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector bool short bs, bs2; 1187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 1287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector signed int si, si2; 1387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector unsigned int ui, ui2; 1487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector bool int bi, bi2; 1587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 1687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector signed long long sl, sl2; 1787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector unsigned long long ul, ul2; 1887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector bool long long bl, bl2; 1987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 2087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile vector double fd, fd2; 2187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 2287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvolatile int cnt; 2387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 2487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_assign (void) 2587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 2687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_assign 2787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 2887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 2987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <16 x i8> [[VAL]], <16 x i8>* @sc 3087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc2; 3187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 3287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <16 x i8> [[VAL]], <16 x i8>* @uc 3387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc2; 3487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 3587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 3687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <8 x i16> [[VAL]], <8 x i16>* @ss 3787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss2; 3887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 3987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <8 x i16> [[VAL]], <8 x i16>* @us 4087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us2; 4187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 4287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 4387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <4 x i32> [[VAL]], <4 x i32>* @si 4487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si2; 4587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 4687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <4 x i32> [[VAL]], <4 x i32>* @ui 4787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui2; 4887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 4987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 5087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <2 x i64> [[VAL]], <2 x i64>* @sl 5187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl2; 5287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 5387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <2 x i64> [[VAL]], <2 x i64>* @ul 5487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul2; 5587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 5687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 5787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <2 x double> [[VAL]], <2 x double>* @fd 5887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd = fd2; 5987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 6087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 6187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_pos (void) 6287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 6387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_pos 6487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 6587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 6687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <16 x i8> [[VAL]], <16 x i8>* @sc 6787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = +sc2; 6887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 6987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <16 x i8> [[VAL]], <16 x i8>* @uc 7087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = +uc2; 7187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 7287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 7387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <8 x i16> [[VAL]], <8 x i16>* @ss 7487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = +ss2; 7587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 7687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <8 x i16> [[VAL]], <8 x i16>* @us 7787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = +us2; 7887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 7987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 8087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <4 x i32> [[VAL]], <4 x i32>* @si 8187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = +si2; 8287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 8387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <4 x i32> [[VAL]], <4 x i32>* @ui 8487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = +ui2; 8587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 8687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 8787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <2 x i64> [[VAL]], <2 x i64>* @sl 8887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = +sl2; 8987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 9087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <2 x i64> [[VAL]], <2 x i64>* @ul 9187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = +ul2; 9287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 9387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 9487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: store volatile <2 x double> [[VAL]], <2 x double>* @fd 9587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd = +fd2; 9687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 9787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 9887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_neg (void) 9987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 10087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_neg 10187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 10287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 10387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <16 x i8> zeroinitializer, [[VAL]] 10487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = -sc2; 10587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 10687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <8 x i16> zeroinitializer, [[VAL]] 10787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = -ss2; 10887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 10987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <4 x i32> zeroinitializer, [[VAL]] 11087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = -si2; 11187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 11287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <2 x i64> zeroinitializer, [[VAL]] 11387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = -sl2; 11487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 11587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, [[VAL]] 11687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd = -fd2; 11787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 11887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 11987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_preinc (void) 12087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 12187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_preinc 12287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 12387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 12487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL]], <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1> 12587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++sc2; 12687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 12787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL]], <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1> 12887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++uc2; 12987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 13087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 13187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL]], <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1> 13287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++ss2; 13387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 13487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL]], <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1> 13587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++us2; 13687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 13787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 13887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL]], <i32 1, i32 1, i32 1, i32 1> 13987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++si2; 14087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 14187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL]], <i32 1, i32 1, i32 1, i32 1> 14287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++ui2; 14387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 14487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 14587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL]], <i64 1, i64 1> 14687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++sl2; 14787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 14887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL]], <i64 1, i64 1> 14987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++ul2; 15087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 15187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 15287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fadd <2 x double> [[VAL]], <double 1.000000e+00, double 1.000000e+00> 15387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++fd2; 15487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 15587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 15687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_postinc (void) 15787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 15887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_postinc 15987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 16087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 16187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL]], <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1> 16287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc2++; 16387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 16487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL]], <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1> 16587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc2++; 16687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 16787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 16887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL]], <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1> 16987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss2++; 17087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 17187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL]], <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1> 17287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us2++; 17387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 17487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 17587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL]], <i32 1, i32 1, i32 1, i32 1> 17687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si2++; 17787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 17887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL]], <i32 1, i32 1, i32 1, i32 1> 17987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui2++; 18087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 18187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 18287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL]], <i64 1, i64 1> 18387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl2++; 18487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 18587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL]], <i64 1, i64 1> 18687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul2++; 18787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 18887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 18987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fadd <2 x double> [[VAL]], <double 1.000000e+00, double 1.000000e+00> 19087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd2++; 19187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 19287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 19387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_predec (void) 19487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 19587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_predec 19687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 19787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 19887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1> 19987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar --sc2; 20087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 20187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1> 20287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar --uc2; 20387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 20487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 20587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL]], <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1> 20687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar --ss2; 20787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 20887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL]], <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1> 20987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar --us2; 21087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 21187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 21287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL]], <i32 -1, i32 -1, i32 -1, i32 -1> 21387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar --si2; 21487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 21587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL]], <i32 -1, i32 -1, i32 -1, i32 -1> 21687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar --ui2; 21787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 21887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 21987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL]], <i64 -1, i64 -1> 22087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar --sl2; 22187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 22287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL]], <i64 -1, i64 -1> 22387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar --ul2; 22487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 22587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 22687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fadd <2 x double> [[VAL]], <double -1.000000e+00, double -1.000000e+00> 22787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar --fd2; 22887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 22987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 23087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_postdec (void) 23187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 23287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_postdec 23387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 23487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 23587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1> 23687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc2--; 23787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 23887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1> 23987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc2--; 24087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 24187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 24287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL]], <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1> 24387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss2--; 24487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 24587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL]], <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1> 24687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us2--; 24787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 24887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 24987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL]], <i32 -1, i32 -1, i32 -1, i32 -1> 25087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si2--; 25187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 25287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL]], <i32 -1, i32 -1, i32 -1, i32 -1> 25387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui2--; 25487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 25587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 25687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL]], <i64 -1, i64 -1> 25787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl2--; 25887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 25987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL]], <i64 -1, i64 -1> 26087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul2--; 26187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 26287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 26387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fadd <2 x double> [[VAL]], <double -1.000000e+00, double -1.000000e+00> 26487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd2--; 26587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 26687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 26787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_add (void) 26887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 26987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_add 27087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 27187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 27287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 27387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL2]], [[VAL1]] 27487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc + sc2; 27587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 27687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 27787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL2]], [[VAL1]] 27887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc + bc2; 27987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 28087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 28187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL2]], [[VAL1]] 28287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = bc + sc2; 28387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 28487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 28587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL2]], [[VAL1]] 28687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc + uc2; 28787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 28887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 28987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL2]], [[VAL1]] 29087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc + bc2; 29187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 29287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 29387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL2]], [[VAL1]] 29487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = bc + uc2; 29587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 29687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 29787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 29887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL2]], [[VAL1]] 29987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss + ss2; 30087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 30187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 30287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL2]], [[VAL1]] 30387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss + bs2; 30487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 30587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 30687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL2]], [[VAL1]] 30787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = bs + ss2; 30887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 30987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 31087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL2]], [[VAL1]] 31187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us + us2; 31287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 31387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 31487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL2]], [[VAL1]] 31587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us + bs2; 31687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 31787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 31887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL2]], [[VAL1]] 31987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = bs + us2; 32087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 32187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 32287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 32387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL2]], [[VAL1]] 32487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si + si2; 32587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 32687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 32787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL2]], [[VAL1]] 32887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si + bi2; 32987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 33087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 33187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL2]], [[VAL1]] 33287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = bi + si2; 33387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 33487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 33587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL2]], [[VAL1]] 33687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui + ui2; 33787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 33887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 33987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL2]], [[VAL1]] 34087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui + bi2; 34187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 34287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 34387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL2]], [[VAL1]] 34487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = bi + ui2; 34587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 34687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 34787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 34887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL2]], [[VAL1]] 34987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl + sl2; 35087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 35187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 35287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL2]], [[VAL1]] 35387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl + bl2; 35487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 35587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 35687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL2]], [[VAL1]] 35787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = bl + sl2; 35887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 35987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 36087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL2]], [[VAL1]] 36187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul + ul2; 36287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 36387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 36487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL2]], [[VAL1]] 36587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul + bl2; 36687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 36787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 36887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL2]], [[VAL1]] 36987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = bl + ul2; 37087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 37187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 37287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 37387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fadd <2 x double> [[VAL1]], [[VAL2]] 37487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd = fd + fd2; 37587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 37687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 37787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_add_assign (void) 37887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 37987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_add_assign 38087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 38187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 38287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 38387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL1]], [[VAL2]] 38487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc += sc2; 38587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 38687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 38787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL1]], [[VAL2]] 38887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc += bc2; 38987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 39087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 39187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL1]], [[VAL2]] 39287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc += uc2; 39387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 39487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 39587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <16 x i8> [[VAL1]], [[VAL2]] 39687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc += bc2; 39787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 39887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 39987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 40087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL1]], [[VAL2]] 40187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss += ss2; 40287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 40387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 40487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL1]], [[VAL2]] 40587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss += bs2; 40687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 40787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 40887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL1]], [[VAL2]] 40987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us += us2; 41087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 41187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 41287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <8 x i16> [[VAL1]], [[VAL2]] 41387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us += bs2; 41487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 41587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 41687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 41787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL1]], [[VAL2]] 41887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si += si2; 41987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 42087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 42187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL1]], [[VAL2]] 42287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si += bi2; 42387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 42487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 42587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL1]], [[VAL2]] 42687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui += ui2; 42787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 42887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 42987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <4 x i32> [[VAL1]], [[VAL2]] 43087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui += bi2; 43187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 43287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 43387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 43487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL1]], [[VAL2]] 43587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl += sl2; 43687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 43787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 43887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL1]], [[VAL2]] 43987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl += bl2; 44087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 44187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 44287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL1]], [[VAL2]] 44387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul += ul2; 44487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 44587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 44687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = add <2 x i64> [[VAL1]], [[VAL2]] 44787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul += bl2; 44887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 44987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 45087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 45187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fadd <2 x double> [[VAL2]], [[VAL1]] 45287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd += fd2; 45387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 45487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 45587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_sub (void) 45687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 45787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_sub 45887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 45987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 46087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 46187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <16 x i8> [[VAL1]], [[VAL2]] 46287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc - sc2; 46387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 46487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 46587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <16 x i8> [[VAL1]], [[VAL2]] 46687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc - bc2; 46787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 46887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 46987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <16 x i8> [[VAL1]], [[VAL2]] 47087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = bc - sc2; 47187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 47287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 47387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <16 x i8> [[VAL1]], [[VAL2]] 47487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc - uc2; 47587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 47687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 47787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <16 x i8> [[VAL1]], [[VAL2]] 47887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc - bc2; 47987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 48087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 48187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <16 x i8> [[VAL1]], [[VAL2]] 48287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = bc - uc2; 48387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 48487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 48587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 48687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <8 x i16> [[VAL1]], [[VAL2]] 48787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss - ss2; 48887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 48987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 49087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <8 x i16> [[VAL1]], [[VAL2]] 49187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss - bs2; 49287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 49387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 49487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <8 x i16> [[VAL1]], [[VAL2]] 49587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = bs - ss2; 49687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 49787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 49887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <8 x i16> [[VAL1]], [[VAL2]] 49987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us - us2; 50087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 50187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 50287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <8 x i16> [[VAL1]], [[VAL2]] 50387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us - bs2; 50487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 50587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 50687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <8 x i16> [[VAL1]], [[VAL2]] 50787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = bs - us2; 50887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 50987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 51087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 51187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <4 x i32> [[VAL1]], [[VAL2]] 51287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si - si2; 51387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 51487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 51587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <4 x i32> [[VAL1]], [[VAL2]] 51687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si - bi2; 51787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 51887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 51987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <4 x i32> [[VAL1]], [[VAL2]] 52087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = bi - si2; 52187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 52287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 52387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <4 x i32> [[VAL1]], [[VAL2]] 52487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui - ui2; 52587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 52687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 52787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <4 x i32> [[VAL1]], [[VAL2]] 52887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui - bi2; 52987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 53087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 53187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <4 x i32> [[VAL1]], [[VAL2]] 53287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = bi - ui2; 53387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 53487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 53587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 53687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <2 x i64> [[VAL1]], [[VAL2]] 53787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl - sl2; 53887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 53987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 54087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <2 x i64> [[VAL1]], [[VAL2]] 54187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl - bl2; 54287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 54387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 54487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <2 x i64> [[VAL1]], [[VAL2]] 54587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = bl - sl2; 54687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 54787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 54887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <2 x i64> [[VAL1]], [[VAL2]] 54987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul - ul2; 55087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 55187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 55287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <2 x i64> [[VAL1]], [[VAL2]] 55387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul - bl2; 55487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 55587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 55687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <2 x i64> [[VAL1]], [[VAL2]] 55787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = bl - ul2; 55887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 55987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 56087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 56187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fsub <2 x double> [[VAL1]], [[VAL2]] 56287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd = fd - fd2; 56387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 56487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 56587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_sub_assign (void) 56687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 56787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_sub_assign 56887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 56987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 57087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 57187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <16 x i8> [[VAL1]], [[VAL2]] 57287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc -= sc2; 57387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 57487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 57587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <16 x i8> [[VAL1]], [[VAL2]] 57687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc -= bc2; 57787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 57887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 57987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <16 x i8> [[VAL1]], [[VAL2]] 58087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc -= uc2; 58187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 58287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 58387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <16 x i8> [[VAL1]], [[VAL2]] 58487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc -= bc2; 58587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 58687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 58787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 58887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <8 x i16> [[VAL1]], [[VAL2]] 58987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss -= ss2; 59087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 59187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 59287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <8 x i16> [[VAL1]], [[VAL2]] 59387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss -= bs2; 59487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 59587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 59687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <8 x i16> [[VAL1]], [[VAL2]] 59787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us -= us2; 59887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 59987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 60087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <8 x i16> [[VAL1]], [[VAL2]] 60187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us -= bs2; 60287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 60387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 60487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 60587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <4 x i32> [[VAL1]], [[VAL2]] 60687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si -= si2; 60787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 60887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 60987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <4 x i32> [[VAL1]], [[VAL2]] 61087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si -= bi2; 61187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 61287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 61387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <4 x i32> [[VAL1]], [[VAL2]] 61487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui -= ui2; 61587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 61687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 61787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <4 x i32> [[VAL1]], [[VAL2]] 61887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui -= bi2; 61987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 62087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 62187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 62287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <2 x i64> [[VAL1]], [[VAL2]] 62387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl -= sl2; 62487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 62587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 62687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <2 x i64> [[VAL1]], [[VAL2]] 62787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl -= bl2; 62887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 62987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 63087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <2 x i64> [[VAL1]], [[VAL2]] 63187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul -= ul2; 63287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 63387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 63487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sub <2 x i64> [[VAL1]], [[VAL2]] 63587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul -= bl2; 63687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 63787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 63887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 63987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fsub <2 x double> [[VAL1]], [[VAL2]] 64087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd -= fd2; 64187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 64287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 64387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_mul (void) 64487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 64587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_mul 64687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 64787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 64887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 64987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <16 x i8> [[VAL2]], [[VAL1]] 65087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc * sc2; 65187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 65287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 65387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <16 x i8> [[VAL2]], [[VAL1]] 65487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc * uc2; 65587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 65687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 65787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 65887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <8 x i16> [[VAL2]], [[VAL1]] 65987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss * ss2; 66087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 66187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 66287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <8 x i16> [[VAL2]], [[VAL1]] 66387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us * us2; 66487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 66587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 66687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 66787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <4 x i32> [[VAL2]], [[VAL1]] 66887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si * si2; 66987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 67087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 67187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <4 x i32> [[VAL2]], [[VAL1]] 67287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui * ui2; 67387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 67487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 67587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 67687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <2 x i64> [[VAL2]], [[VAL1]] 67787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl * sl2; 67887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 67987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 68087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <2 x i64> [[VAL2]], [[VAL1]] 68187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul * ul2; 68287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 68387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 68487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 68587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fmul <2 x double> [[VAL1]], [[VAL2]] 68687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd = fd * fd2; 68787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 68887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 68987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_mul_assign (void) 69087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 69187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_mul_assign 69287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 69387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 69487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 69587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <16 x i8> [[VAL1]], [[VAL2]] 69687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc *= sc2; 69787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 69887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 69987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <16 x i8> [[VAL1]], [[VAL2]] 70087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc *= uc2; 70187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 70287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 70387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 70487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <8 x i16> [[VAL1]], [[VAL2]] 70587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss *= ss2; 70687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 70787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 70887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <8 x i16> [[VAL1]], [[VAL2]] 70987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us *= us2; 71087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 71187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 71287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 71387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <4 x i32> [[VAL1]], [[VAL2]] 71487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si *= si2; 71587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 71687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 71787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <4 x i32> [[VAL1]], [[VAL2]] 71887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui *= ui2; 71987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 72087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 72187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 72287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <2 x i64> [[VAL1]], [[VAL2]] 72387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl *= sl2; 72487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 72587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 72687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = mul <2 x i64> [[VAL1]], [[VAL2]] 72787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul *= ul2; 72887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 72987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 73087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 73187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fmul <2 x double> [[VAL2]], [[VAL1]] 73287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd *= fd2; 73387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 73487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 73587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_div (void) 73687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 73787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_div 73887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 73987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 74087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 74187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sdiv <16 x i8> [[VAL1]], [[VAL2]] 74287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc / sc2; 74387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 74487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 74587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = udiv <16 x i8> [[VAL1]], [[VAL2]] 74687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc / uc2; 74787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 74887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 74987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 75087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sdiv <8 x i16> [[VAL1]], [[VAL2]] 75187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss / ss2; 75287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 75387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 75487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = udiv <8 x i16> [[VAL1]], [[VAL2]] 75587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us / us2; 75687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 75787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 75887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 75987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sdiv <4 x i32> [[VAL1]], [[VAL2]] 76087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si / si2; 76187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 76287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 76387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = udiv <4 x i32> [[VAL1]], [[VAL2]] 76487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui / ui2; 76587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 76687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 76787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 76887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sdiv <2 x i64> [[VAL1]], [[VAL2]] 76987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl / sl2; 77087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 77187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 77287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = udiv <2 x i64> [[VAL1]], [[VAL2]] 77387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul / ul2; 77487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 77587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 77687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 77787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fdiv <2 x double> [[VAL1]], [[VAL2]] 77887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd = fd / fd2; 77987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 78087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 78187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_div_assign (void) 78287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 78387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_div_assign 78487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 78587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 78687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 78787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sdiv <16 x i8> [[VAL1]], [[VAL2]] 78887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc /= sc2; 78987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 79087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 79187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = udiv <16 x i8> [[VAL1]], [[VAL2]] 79287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc /= uc2; 79387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 79487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 79587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 79687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sdiv <8 x i16> [[VAL1]], [[VAL2]] 79787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss /= ss2; 79887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 79987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 80087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = udiv <8 x i16> [[VAL1]], [[VAL2]] 80187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us /= us2; 80287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 80387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 80487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 80587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sdiv <4 x i32> [[VAL1]], [[VAL2]] 80687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si /= si2; 80787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 80887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 80987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = udiv <4 x i32> [[VAL1]], [[VAL2]] 81087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui /= ui2; 81187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 81287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 81387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 81487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sdiv <2 x i64> [[VAL1]], [[VAL2]] 81587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl /= sl2; 81687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 81787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 81887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = udiv <2 x i64> [[VAL1]], [[VAL2]] 81987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul /= ul2; 82087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 82187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 82287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 82387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = fdiv <2 x double> [[VAL1]], [[VAL2]] 82487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar fd /= fd2; 82587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 82687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 82787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_rem (void) 82887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 82987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_rem 83087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 83187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 83287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 83387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = srem <16 x i8> [[VAL1]], [[VAL2]] 83487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc % sc2; 83587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 83687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 83787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = urem <16 x i8> [[VAL1]], [[VAL2]] 83887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc % uc2; 83987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 84087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 84187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 84287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = srem <8 x i16> [[VAL1]], [[VAL2]] 84387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss % ss2; 84487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 84587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 84687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = urem <8 x i16> [[VAL1]], [[VAL2]] 84787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us % us2; 84887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 84987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 85087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 85187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = srem <4 x i32> [[VAL1]], [[VAL2]] 85287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si % si2; 85387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 85487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 85587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = urem <4 x i32> [[VAL1]], [[VAL2]] 85687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui % ui2; 85787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 85887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 85987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 86087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = srem <2 x i64> [[VAL1]], [[VAL2]] 86187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl % sl2; 86287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 86387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 86487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = urem <2 x i64> [[VAL1]], [[VAL2]] 86587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul % ul2; 86687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 86787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 86887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_rem_assign (void) 86987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 87087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_rem_assign 87187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 87287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 87387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 87487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = srem <16 x i8> [[VAL1]], [[VAL2]] 87587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc %= sc2; 87687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 87787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 87887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = urem <16 x i8> [[VAL1]], [[VAL2]] 87987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc %= uc2; 88087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 88187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 88287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 88387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = srem <8 x i16> [[VAL1]], [[VAL2]] 88487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss %= ss2; 88587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 88687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 88787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = urem <8 x i16> [[VAL1]], [[VAL2]] 88887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us %= us2; 88987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 89087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 89187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 89287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = srem <4 x i32> [[VAL1]], [[VAL2]] 89387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si %= si2; 89487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 89587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 89687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = urem <4 x i32> [[VAL1]], [[VAL2]] 89787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui %= ui2; 89887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 89987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 90087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 90187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = srem <2 x i64> [[VAL1]], [[VAL2]] 90287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl %= sl2; 90387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 90487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 90587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = urem <2 x i64> [[VAL1]], [[VAL2]] 90687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul %= ul2; 90787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 90887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 90987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_not (void) 91087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 91187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_not 91287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 91387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 91487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1> 91587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = ~sc2; 91687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 91787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1> 91887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = ~uc2; 91987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 92087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1> 92187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = ~bc2; 92287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 92387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 92487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL]], <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1> 92587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ~ss2; 92687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 92787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL]], <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1> 92887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = ~us2; 92987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 93087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL]], <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1> 93187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = ~bs2; 93287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 93387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 93487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL]], <i32 -1, i32 -1, i32 -1, i32 -1> 93587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = ~si2; 93687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 93787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL]], <i32 -1, i32 -1, i32 -1, i32 -1> 93887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ~ui2; 93987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 94087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL]], <i32 -1, i32 -1, i32 -1, i32 -1> 94187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = ~bi2; 94287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 94387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 94487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL]], <i64 -1, i64 -1> 94587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = ~sl2; 94687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 94787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL]], <i64 -1, i64 -1> 94887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ~ul2; 94987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 95087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL]], <i64 -1, i64 -1> 95187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = ~bl2; 95287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 95387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 95487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_and (void) 95587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 95687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_and 95787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 95887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 95987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 96087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <16 x i8> [[VAL2]], [[VAL1]] 96187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc & sc2; 96287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 96387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 96487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <16 x i8> [[VAL2]], [[VAL1]] 96587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc & bc2; 96687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 96787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 96887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <16 x i8> [[VAL2]], [[VAL1]] 96987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = bc & sc2; 97087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 97187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 97287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <16 x i8> [[VAL2]], [[VAL1]] 97387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc & uc2; 97487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 97587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 97687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <16 x i8> [[VAL2]], [[VAL1]] 97787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc & bc2; 97887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 97987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 98087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <16 x i8> [[VAL2]], [[VAL1]] 98187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = bc & uc2; 98287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 98387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 98487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <16 x i8> [[VAL2]], [[VAL1]] 98587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc & bc2; 98687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 98787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 98887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 98987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <8 x i16> [[VAL2]], [[VAL1]] 99087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss & ss2; 99187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 99287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 99387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <8 x i16> [[VAL2]], [[VAL1]] 99487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss & bs2; 99587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 99687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 99787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <8 x i16> [[VAL2]], [[VAL1]] 99887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = bs & ss2; 99987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 100087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 100187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <8 x i16> [[VAL2]], [[VAL1]] 100287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us & us2; 100387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 100487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 100587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <8 x i16> [[VAL2]], [[VAL1]] 100687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us & bs2; 100787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 100887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 100987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <8 x i16> [[VAL2]], [[VAL1]] 101087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = bs & us2; 101187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 101287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 101387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <8 x i16> [[VAL2]], [[VAL1]] 101487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs & bs2; 101587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 101687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 101787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 101887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <4 x i32> [[VAL2]], [[VAL1]] 101987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si & si2; 102087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 102187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 102287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <4 x i32> [[VAL2]], [[VAL1]] 102387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si & bi2; 102487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 102587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 102687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <4 x i32> [[VAL2]], [[VAL1]] 102787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = bi & si2; 102887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 102987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 103087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <4 x i32> [[VAL2]], [[VAL1]] 103187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui & ui2; 103287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 103387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 103487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <4 x i32> [[VAL2]], [[VAL1]] 103587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui & bi2; 103687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 103787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 103887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <4 x i32> [[VAL2]], [[VAL1]] 103987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = bi & ui2; 104087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 104187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 104287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <4 x i32> [[VAL2]], [[VAL1]] 104387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi & bi2; 104487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 104587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 104687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 104787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <2 x i64> [[VAL2]], [[VAL1]] 104887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl & sl2; 104987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 105087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 105187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <2 x i64> [[VAL2]], [[VAL1]] 105287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl & bl2; 105387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 105487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 105587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <2 x i64> [[VAL2]], [[VAL1]] 105687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = bl & sl2; 105787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 105887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 105987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <2 x i64> [[VAL2]], [[VAL1]] 106087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul & ul2; 106187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 106287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 106387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <2 x i64> [[VAL2]], [[VAL1]] 106487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul & bl2; 106587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 106687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 106787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <2 x i64> [[VAL2]], [[VAL1]] 106887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = bl & ul2; 106987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 107087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 107187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <2 x i64> [[VAL2]], [[VAL1]] 107287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl & bl2; 107387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 107487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 107587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_and_assign (void) 107687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 107787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_and_assign 107887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 107987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 108087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 108187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <16 x i8> [[VAL1]], [[VAL2]] 108287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc &= sc2; 108387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 108487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 108587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <16 x i8> [[VAL1]], [[VAL2]] 108687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc &= bc2; 108787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 108887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 108987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <16 x i8> [[VAL1]], [[VAL2]] 109087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc &= uc2; 109187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 109287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 109387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <16 x i8> [[VAL1]], [[VAL2]] 109487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc &= bc2; 109587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 109687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 109787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <16 x i8> [[VAL1]], [[VAL2]] 109887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc &= bc2; 109987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 110087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 110187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 110287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <8 x i16> [[VAL1]], [[VAL2]] 110387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss &= ss2; 110487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 110587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 110687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <8 x i16> [[VAL1]], [[VAL2]] 110787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss &= bs2; 110887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 110987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 111087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <8 x i16> [[VAL1]], [[VAL2]] 111187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us &= us2; 111287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 111387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 111487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <8 x i16> [[VAL1]], [[VAL2]] 111587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us &= bs2; 111687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 111787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 111887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <8 x i16> [[VAL1]], [[VAL2]] 111987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs &= bs2; 112087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 112187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 112287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 112387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <4 x i32> [[VAL1]], [[VAL2]] 112487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si &= si2; 112587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 112687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 112787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <4 x i32> [[VAL1]], [[VAL2]] 112887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si &= bi2; 112987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 113087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 113187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <4 x i32> [[VAL1]], [[VAL2]] 113287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui &= ui2; 113387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 113487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 113587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <4 x i32> [[VAL1]], [[VAL2]] 113687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui &= bi2; 113787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 113887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 113987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <4 x i32> [[VAL1]], [[VAL2]] 114087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi &= bi2; 114187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 114287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 114387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 114487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <2 x i64> [[VAL1]], [[VAL2]] 114587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl &= sl2; 114687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 114787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 114887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <2 x i64> [[VAL1]], [[VAL2]] 114987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl &= bl2; 115087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 115187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 115287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <2 x i64> [[VAL1]], [[VAL2]] 115387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul &= ul2; 115487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 115587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 115687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <2 x i64> [[VAL1]], [[VAL2]] 115787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul &= bl2; 115887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 115987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 116087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = and <2 x i64> [[VAL1]], [[VAL2]] 116187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl &= bl2; 116287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 116387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 116487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_or (void) 116587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 116687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_or 116787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 116887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 116987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 117087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <16 x i8> [[VAL2]], [[VAL1]] 117187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc | sc2; 117287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 117387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 117487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <16 x i8> [[VAL2]], [[VAL1]] 117587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc | bc2; 117687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 117787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 117887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <16 x i8> [[VAL2]], [[VAL1]] 117987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = bc | sc2; 118087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 118187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 118287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <16 x i8> [[VAL2]], [[VAL1]] 118387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc | uc2; 118487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 118587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 118687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <16 x i8> [[VAL2]], [[VAL1]] 118787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc | bc2; 118887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 118987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 119087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <16 x i8> [[VAL2]], [[VAL1]] 119187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = bc | uc2; 119287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 119387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 119487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <16 x i8> [[VAL2]], [[VAL1]] 119587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc | bc2; 119687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 119787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 119887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 119987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <8 x i16> [[VAL2]], [[VAL1]] 120087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss | ss2; 120187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 120287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 120387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <8 x i16> [[VAL2]], [[VAL1]] 120487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss | bs2; 120587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 120687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 120787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <8 x i16> [[VAL2]], [[VAL1]] 120887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = bs | ss2; 120987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 121087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 121187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <8 x i16> [[VAL2]], [[VAL1]] 121287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us | us2; 121387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 121487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 121587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <8 x i16> [[VAL2]], [[VAL1]] 121687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us | bs2; 121787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 121887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 121987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <8 x i16> [[VAL2]], [[VAL1]] 122087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = bs | us2; 122187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 122287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 122387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <8 x i16> [[VAL2]], [[VAL1]] 122487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs | bs2; 122587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 122687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 122787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 122887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <4 x i32> [[VAL2]], [[VAL1]] 122987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si | si2; 123087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 123187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 123287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <4 x i32> [[VAL2]], [[VAL1]] 123387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si | bi2; 123487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 123587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 123687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <4 x i32> [[VAL2]], [[VAL1]] 123787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = bi | si2; 123887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 123987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 124087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <4 x i32> [[VAL2]], [[VAL1]] 124187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui | ui2; 124287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 124387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 124487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <4 x i32> [[VAL2]], [[VAL1]] 124587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui | bi2; 124687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 124787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 124887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <4 x i32> [[VAL2]], [[VAL1]] 124987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = bi | ui2; 125087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 125187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 125287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <4 x i32> [[VAL2]], [[VAL1]] 125387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi | bi2; 125487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 125587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 125687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 125787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <2 x i64> [[VAL2]], [[VAL1]] 125887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl | sl2; 125987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 126087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 126187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <2 x i64> [[VAL2]], [[VAL1]] 126287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl | bl2; 126387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 126487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 126587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <2 x i64> [[VAL2]], [[VAL1]] 126687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = bl | sl2; 126787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 126887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 126987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <2 x i64> [[VAL2]], [[VAL1]] 127087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul | ul2; 127187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 127287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 127387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <2 x i64> [[VAL2]], [[VAL1]] 127487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul | bl2; 127587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 127687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 127787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <2 x i64> [[VAL2]], [[VAL1]] 127887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = bl | ul2; 127987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 128087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 128187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <2 x i64> [[VAL2]], [[VAL1]] 128287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl | bl2; 128387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 128487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 128587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_or_assign (void) 128687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 128787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_or_assign 128887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 128987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 129087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 129187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <16 x i8> [[VAL1]], [[VAL2]] 129287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc |= sc2; 129387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 129487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 129587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <16 x i8> [[VAL1]], [[VAL2]] 129687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc |= bc2; 129787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 129887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 129987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <16 x i8> [[VAL1]], [[VAL2]] 130087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc |= uc2; 130187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 130287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 130387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <16 x i8> [[VAL1]], [[VAL2]] 130487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc |= bc2; 130587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 130687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 130787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <16 x i8> [[VAL1]], [[VAL2]] 130887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc |= bc2; 130987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 131087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 131187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 131287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <8 x i16> [[VAL1]], [[VAL2]] 131387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss |= ss2; 131487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 131587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 131687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <8 x i16> [[VAL1]], [[VAL2]] 131787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss |= bs2; 131887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 131987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 132087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <8 x i16> [[VAL1]], [[VAL2]] 132187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us |= us2; 132287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 132387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 132487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <8 x i16> [[VAL1]], [[VAL2]] 132587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us |= bs2; 132687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 132787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 132887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <8 x i16> [[VAL1]], [[VAL2]] 132987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs |= bs2; 133087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 133187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 133287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 133387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <4 x i32> [[VAL1]], [[VAL2]] 133487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si |= si2; 133587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 133687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 133787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <4 x i32> [[VAL1]], [[VAL2]] 133887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si |= bi2; 133987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 134087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 134187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <4 x i32> [[VAL1]], [[VAL2]] 134287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui |= ui2; 134387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 134487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 134587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <4 x i32> [[VAL1]], [[VAL2]] 134687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui |= bi2; 134787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 134887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 134987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <4 x i32> [[VAL1]], [[VAL2]] 135087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi |= bi2; 135187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 135287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 135387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 135487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <2 x i64> [[VAL1]], [[VAL2]] 135587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl |= sl2; 135687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 135787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 135887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <2 x i64> [[VAL1]], [[VAL2]] 135987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl |= bl2; 136087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 136187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 136287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <2 x i64> [[VAL1]], [[VAL2]] 136387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul |= ul2; 136487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 136587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 136687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <2 x i64> [[VAL1]], [[VAL2]] 136787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul |= bl2; 136887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 136987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 137087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = or <2 x i64> [[VAL1]], [[VAL2]] 137187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl |= bl2; 137287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 137387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 137487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_xor (void) 137587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 137687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_xor 137787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 137887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 137987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 138087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL1]], [[VAL2]] 138187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc ^ sc2; 138287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 138387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 138487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL1]], [[VAL2]] 138587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc ^ bc2; 138687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 138787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 138887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL1]], [[VAL2]] 138987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = bc ^ sc2; 139087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 139187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 139287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL1]], [[VAL2]] 139387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc ^ uc2; 139487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 139587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 139687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL1]], [[VAL2]] 139787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc ^ bc2; 139887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 139987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 140087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL1]], [[VAL2]] 140187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = bc ^ uc2; 140287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 140387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 140487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL1]], [[VAL2]] 140587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc ^ bc2; 140687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 140787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 140887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 140987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL1]], [[VAL2]] 141087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss ^ ss2; 141187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 141287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 141387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL1]], [[VAL2]] 141487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss ^ bs2; 141587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 141687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 141787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL1]], [[VAL2]] 141887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = bs ^ ss2; 141987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 142087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 142187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL1]], [[VAL2]] 142287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us ^ us2; 142387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 142487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 142587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL1]], [[VAL2]] 142687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us ^ bs2; 142787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 142887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 142987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL1]], [[VAL2]] 143087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = bs ^ us2; 143187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 143287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 143387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL1]], [[VAL2]] 143487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs ^ bs2; 143587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 143687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 143787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 143887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL1]], [[VAL2]] 143987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si ^ si2; 144087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 144187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 144287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL1]], [[VAL2]] 144387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si ^ bi2; 144487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 144587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 144687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL1]], [[VAL2]] 144787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = bi ^ si2; 144887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 144987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 145087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL1]], [[VAL2]] 145187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui ^ ui2; 145287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 145387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 145487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL1]], [[VAL2]] 145587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui ^ bi2; 145687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 145787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 145887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL1]], [[VAL2]] 145987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = bi ^ ui2; 146087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 146187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 146287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL1]], [[VAL2]] 146387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi ^ bi2; 146487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 146587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 146687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 146787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL1]], [[VAL2]] 146887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl ^ sl2; 146987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 147087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 147187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL1]], [[VAL2]] 147287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl ^ bl2; 147387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 147487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 147587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL1]], [[VAL2]] 147687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = bl ^ sl2; 147787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 147887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 147987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL1]], [[VAL2]] 148087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul ^ ul2; 148187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 148287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 148387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL1]], [[VAL2]] 148487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul ^ bl2; 148587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 148687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 148787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL1]], [[VAL2]] 148887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = bl ^ ul2; 148987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 149087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 149187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL1]], [[VAL2]] 149287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl ^ bl2; 149387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 149487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 149587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_xor_assign (void) 149687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 149787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_xor_assign 149887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 149987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 150087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 150187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL2]], [[VAL1]] 150287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc ^= sc2; 150387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 150487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 150587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL2]], [[VAL1]] 150687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc ^= bc2; 150787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 150887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 150987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL2]], [[VAL1]] 151087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc ^= uc2; 151187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 151287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 151387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL2]], [[VAL1]] 151487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc ^= bc2; 151587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 151687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 151787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <16 x i8> [[VAL2]], [[VAL1]] 151887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc ^= bc2; 151987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 152087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 152187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 152287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL2]], [[VAL1]] 152387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss ^= ss2; 152487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 152587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 152687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL2]], [[VAL1]] 152787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss ^= bs2; 152887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 152987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 153087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL2]], [[VAL1]] 153187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us ^= us2; 153287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 153387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 153487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL2]], [[VAL1]] 153587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us ^= bs2; 153687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 153787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 153887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <8 x i16> [[VAL2]], [[VAL1]] 153987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs ^= bs2; 154087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 154187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 154287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 154387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL2]], [[VAL1]] 154487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si ^= si2; 154587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 154687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 154787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL2]], [[VAL1]] 154887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si ^= bi2; 154987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 155087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 155187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL2]], [[VAL1]] 155287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui ^= ui2; 155387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 155487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 155587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL2]], [[VAL1]] 155687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui ^= bi2; 155787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 155887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 155987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <4 x i32> [[VAL2]], [[VAL1]] 156087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi ^= bi2; 156187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 156287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 156387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 156487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL2]], [[VAL1]] 156587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl ^= sl2; 156687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 156787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 156887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL2]], [[VAL1]] 156987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl ^= bl2; 157087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 157187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 157287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL2]], [[VAL1]] 157387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul ^= ul2; 157487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 157587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 157687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL2]], [[VAL1]] 157787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul ^= bl2; 157887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 157987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 158087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = xor <2 x i64> [[VAL2]], [[VAL1]] 158187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl ^= bl2; 158287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 158387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 158487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_sl (void) 158587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 158687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_sl 158787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 158887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 158987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 159087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], [[CNT]] 159187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc << sc2; 159287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 159387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 159487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], [[CNT]] 159587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc << uc2; 159687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 159787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 159887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <16 x i32> undef, i32 [[T1]], i32 0 159987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <16 x i32> [[T2]], <16 x i32> undef, <16 x i32> zeroinitializer 160087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <16 x i32> [[T3]] to <16 x i8> 160187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], [[CNT]] 160287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc << cnt; 160387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 160487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], <i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5> 160587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc << 5; 160687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 160787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 160887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], [[CNT]] 160987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc << sc2; 161087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 161187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 161287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], [[CNT]] 161387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc << uc2; 161487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 161587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 161687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <16 x i32> undef, i32 [[T1]], i32 0 161787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <16 x i32> [[T2]], <16 x i32> undef, <16 x i32> zeroinitializer 161887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <16 x i32> [[T3]] to <16 x i8> 161987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], [[CNT]] 162087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc << cnt; 162187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 162287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], <i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5> 162387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc << 5; 162487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 162587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 162687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 162787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], [[CNT]] 162887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss << ss2; 162987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 163087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 163187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], [[CNT]] 163287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss << us2; 163387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 163487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 163587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <8 x i32> undef, i32 [[T1]], i32 0 163687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <8 x i32> [[T2]], <8 x i32> undef, <8 x i32> zeroinitializer 163787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <8 x i32> [[T3]] to <8 x i16> 163887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], [[CNT]] 163987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss << cnt; 164087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 164187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], <i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5> 164287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss << 5; 164387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 164487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 164587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], [[CNT]] 164687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us << ss2; 164787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 164887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 164987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], [[CNT]] 165087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us << us2; 165187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 165287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 165387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <8 x i32> undef, i32 [[T1]], i32 0 165487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <8 x i32> [[T2]], <8 x i32> undef, <8 x i32> zeroinitializer 165587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <8 x i32> [[T3]] to <8 x i16> 165687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], [[CNT]] 165787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us << cnt; 165887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 165987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], <i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5> 166087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us << 5; 166187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 166287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 166387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 166487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], [[CNT]] 166587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si << si2; 166687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 166787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 166887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], [[CNT]] 166987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si << ui2; 167087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 167187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 167287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = insertelement <4 x i32> undef, i32 [[T1]], i32 0 167387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = shufflevector <4 x i32> [[T3]], <4 x i32> undef, <4 x i32> zeroinitializer 167487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], [[CNT]] 167587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si << cnt; 167687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 167787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], <i32 5, i32 5, i32 5, i32 5> 167887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si << 5; 167987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 168087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 168187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], [[CNT]] 168287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui << si2; 168387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 168487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 168587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], [[CNT]] 168687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui << ui2; 168787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 168887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 168987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = insertelement <4 x i32> undef, i32 [[T1]], i32 0 169087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = shufflevector <4 x i32> [[T3]], <4 x i32> undef, <4 x i32> zeroinitializer 169187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], [[CNT]] 169287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui << cnt; 169387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 169487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], <i32 5, i32 5, i32 5, i32 5> 169587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui << 5; 169687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 169787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 169887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 169987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], [[CNT]] 170087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl << sl2; 170187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 170287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 170387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], [[CNT]] 170487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl << ul2; 170587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 170687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 170787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <2 x i32> undef, i32 [[T1]], i32 0 170887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <2 x i32> [[T2]], <2 x i32> undef, <2 x i32> zeroinitializer 170987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = zext <2 x i32> [[T3]] to <2 x i64> 171087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], [[CNT]] 171187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl << cnt; 171287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 171387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], <i64 5, i64 5> 171487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl << 5; 171587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 171687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 171787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], [[CNT]] 171887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul << sl2; 171987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 172087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 172187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], [[CNT]] 172287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul << ul2; 172387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 172487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 172587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <2 x i32> undef, i32 [[T1]], i32 0 172687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <2 x i32> [[T2]], <2 x i32> undef, <2 x i32> zeroinitializer 172787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = zext <2 x i32> [[T3]] to <2 x i64> 172887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], [[CNT]] 172987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul << cnt; 173087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 173187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], <i64 5, i64 5> 173287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul << 5; 173387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 173487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 173587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_sl_assign (void) 173687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 173787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_sl_assign 173887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 173987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 174087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 174187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], [[CNT]] 174287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc <<= sc2; 174387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 174487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 174587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], [[CNT]] 174687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc <<= uc2; 174787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 174887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <16 x i32> undef, i32 [[T1]], i32 0 174987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <16 x i32> [[T2]], <16 x i32> undef, <16 x i32> zeroinitializer 175087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 175187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <16 x i32> [[T3]] to <16 x i8> 175287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], [[CNT]] 175387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc <<= cnt; 175487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 175587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], <i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5> 175687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc <<= 5; 175787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 175887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 175987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], [[CNT]] 176087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc <<= sc2; 176187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 176287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 176387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], [[CNT]] 176487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc <<= uc2; 176587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 176687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <16 x i32> undef, i32 [[T1]], i32 0 176787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <16 x i32> [[T2]], <16 x i32> undef, <16 x i32> zeroinitializer 176887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 176987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <16 x i32> [[T3]] to <16 x i8> 177087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], [[CNT]] 177187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc <<= cnt; 177287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 177387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <16 x i8> [[VAL]], <i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5> 177487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc <<= 5; 177587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 177687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 177787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 177887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], [[CNT]] 177987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss <<= ss2; 178087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 178187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 178287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], [[CNT]] 178387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss <<= us2; 178487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 178587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <8 x i32> undef, i32 [[T1]], i32 0 178687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <8 x i32> [[T2]], <8 x i32> undef, <8 x i32> zeroinitializer 178787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 178887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <8 x i32> [[T3]] to <8 x i16> 178987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], [[CNT]] 179087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss <<= cnt; 179187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 179287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], <i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5> 179387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss <<= 5; 179487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 179587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 179687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], [[CNT]] 179787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us <<= ss2; 179887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 179987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 180087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], [[CNT]] 180187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us <<= us2; 180287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 180387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <8 x i32> undef, i32 [[T1]], i32 0 180487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <8 x i32> [[T2]], <8 x i32> undef, <8 x i32> zeroinitializer 180587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 180687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <8 x i32> [[T3]] to <8 x i16> 180787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], [[CNT]] 180887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us <<= cnt; 180987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 181087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <8 x i16> [[VAL]], <i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5> 181187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us <<= 5; 181287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 181387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 181487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 181587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], [[CNT]] 181687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si <<= si2; 181787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 181887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 181987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], [[CNT]] 182087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si <<= ui2; 182187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 182287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = insertelement <4 x i32> undef, i32 [[T1]], i32 0 182387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = shufflevector <4 x i32> [[T3]], <4 x i32> undef, <4 x i32> zeroinitializer 182487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 182587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], [[CNT]] 182687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si <<= cnt; 182787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 182887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], <i32 5, i32 5, i32 5, i32 5> 182987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si <<= 5; 183087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 183187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 183287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], [[CNT]] 183387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui <<= si2; 183487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 183587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 183687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], [[CNT]] 183787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui <<= ui2; 183887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 183987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = insertelement <4 x i32> undef, i32 [[T1]], i32 0 184087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = shufflevector <4 x i32> [[T3]], <4 x i32> undef, <4 x i32> zeroinitializer 184187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 184287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], [[CNT]] 184387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui <<= cnt; 184487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 184587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <4 x i32> [[VAL]], <i32 5, i32 5, i32 5, i32 5> 184687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui <<= 5; 184787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 184887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 184987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 185087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], [[CNT]] 185187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl <<= sl2; 185287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 185387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 185487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], [[CNT]] 185587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl <<= ul2; 185687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 185787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <2 x i32> undef, i32 [[T1]], i32 0 185887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <2 x i32> [[T2]], <2 x i32> undef, <2 x i32> zeroinitializer 185987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 186087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = zext <2 x i32> [[T3]] to <2 x i64> 186187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], [[CNT]] 186287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl <<= cnt; 186387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 186487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], <i64 5, i64 5> 186587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl <<= 5; 186687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 186787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 186887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], [[CNT]] 186987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul <<= sl2; 187087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 187187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 187287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], [[CNT]] 187387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul <<= ul2; 187487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 187587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <2 x i32> undef, i32 [[T1]], i32 0 187687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <2 x i32> [[T2]], <2 x i32> undef, <2 x i32> zeroinitializer 187787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 187887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = zext <2 x i32> [[T3]] to <2 x i64> 187987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], [[CNT]] 188087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul <<= cnt; 188187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 188287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = shl <2 x i64> [[VAL]], <i64 5, i64 5> 188387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul <<= 5; 188487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 188587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 188687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_sr (void) 188787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 188887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_sr 188987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 189087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 189187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 189287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <16 x i8> [[VAL]], [[CNT]] 189387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc >> sc2; 189487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 189587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 189687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <16 x i8> [[VAL]], [[CNT]] 189787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc >> uc2; 189887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 189987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 190087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <16 x i32> undef, i32 [[T1]], i32 0 190187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <16 x i32> [[T2]], <16 x i32> undef, <16 x i32> zeroinitializer 190287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <16 x i32> [[T3]] to <16 x i8> 190387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <16 x i8> [[VAL]], [[CNT]] 190487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc >> cnt; 190587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 190687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <16 x i8> [[VAL]], <i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5> 190787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc = sc >> 5; 190887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 190987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 191087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <16 x i8> [[VAL]], [[CNT]] 191187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc >> sc2; 191287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 191387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 191487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <16 x i8> [[VAL]], [[CNT]] 191587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc >> uc2; 191687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 191787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 191887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <16 x i32> undef, i32 [[T1]], i32 0 191987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <16 x i32> [[T2]], <16 x i32> undef, <16 x i32> zeroinitializer 192087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <16 x i32> [[T3]] to <16 x i8> 192187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <16 x i8> [[VAL]], [[CNT]] 192287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc >> cnt; 192387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 192487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <16 x i8> [[VAL]], <i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5> 192587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc = uc >> 5; 192687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 192787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 192887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 192987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <8 x i16> [[VAL]], [[CNT]] 193087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss >> ss2; 193187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 193287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 193387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <8 x i16> [[VAL]], [[CNT]] 193487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss >> us2; 193587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 193687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 193787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <8 x i32> undef, i32 [[T1]], i32 0 193887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <8 x i32> [[T2]], <8 x i32> undef, <8 x i32> zeroinitializer 193987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <8 x i32> [[T3]] to <8 x i16> 194087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <8 x i16> [[VAL]], [[CNT]] 194187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss >> cnt; 194287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 194387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <8 x i16> [[VAL]], <i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5> 194487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss = ss >> 5; 194587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 194687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 194787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <8 x i16> [[VAL]], [[CNT]] 194887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us >> ss2; 194987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 195087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 195187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <8 x i16> [[VAL]], [[CNT]] 195287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us >> us2; 195387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 195487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 195587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <8 x i32> undef, i32 [[T1]], i32 0 195687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <8 x i32> [[T2]], <8 x i32> undef, <8 x i32> zeroinitializer 195787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <8 x i32> [[T3]] to <8 x i16> 195887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <8 x i16> [[VAL]], [[CNT]] 195987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us >> cnt; 196087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 196187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <8 x i16> [[VAL]], <i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5> 196287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us = us >> 5; 196387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 196487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 196587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 196687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <4 x i32> [[VAL]], [[CNT]] 196787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si >> si2; 196887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 196987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 197087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <4 x i32> [[VAL]], [[CNT]] 197187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si >> ui2; 197287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 197387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 197487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = insertelement <4 x i32> undef, i32 [[T1]], i32 0 197587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = shufflevector <4 x i32> [[T3]], <4 x i32> undef, <4 x i32> zeroinitializer 197687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <4 x i32> [[VAL]], [[CNT]] 197787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si >> cnt; 197887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 197987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <4 x i32> [[VAL]], <i32 5, i32 5, i32 5, i32 5> 198087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = si >> 5; 198187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 198287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 198387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <4 x i32> [[VAL]], [[CNT]] 198487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui >> si2; 198587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 198687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 198787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <4 x i32> [[VAL]], [[CNT]] 198887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui >> ui2; 198987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 199087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 199187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = insertelement <4 x i32> undef, i32 [[T1]], i32 0 199287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = shufflevector <4 x i32> [[T3]], <4 x i32> undef, <4 x i32> zeroinitializer 199387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <4 x i32> [[VAL]], [[CNT]] 199487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui >> cnt; 199587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 199687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <4 x i32> [[VAL]], <i32 5, i32 5, i32 5, i32 5> 199787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui = ui >> 5; 199887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 199987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 200087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 200187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <2 x i64> [[VAL]], [[CNT]] 200287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl >> sl2; 200387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 200487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 200587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <2 x i64> [[VAL]], [[CNT]] 200687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl >> ul2; 200787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 200887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 200987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <2 x i32> undef, i32 [[T1]], i32 0 201087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <2 x i32> [[T2]], <2 x i32> undef, <2 x i32> zeroinitializer 201187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = zext <2 x i32> [[T3]] to <2 x i64> 201287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <2 x i64> [[VAL]], [[CNT]] 201387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl >> cnt; 201487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 201587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <2 x i64> [[VAL]], <i64 5, i64 5> 201687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl = sl >> 5; 201787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 201887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 201987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <2 x i64> [[VAL]], [[CNT]] 202087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul >> sl2; 202187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 202287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 202387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <2 x i64> [[VAL]], [[CNT]] 202487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul >> ul2; 202587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 202687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 202787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <2 x i32> undef, i32 [[T1]], i32 0 202887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <2 x i32> [[T2]], <2 x i32> undef, <2 x i32> zeroinitializer 202987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = zext <2 x i32> [[T3]] to <2 x i64> 203087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <2 x i64> [[VAL]], [[CNT]] 203187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul >> cnt; 203287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 203387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <2 x i64> [[VAL]], <i64 5, i64 5> 203487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul = ul >> 5; 203587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 203687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 203787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_sr_assign (void) 203887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 203987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_sr_assign 204087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 204187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 204287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 204387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <16 x i8> [[VAL]], [[CNT]] 204487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc >>= sc2; 204587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 204687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 204787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <16 x i8> [[VAL]], [[CNT]] 204887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc >>= uc2; 204987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 205087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <16 x i32> undef, i32 [[T1]], i32 0 205187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <16 x i32> [[T2]], <16 x i32> undef, <16 x i32> zeroinitializer 205287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 205387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <16 x i32> [[T3]] to <16 x i8> 205487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <16 x i8> [[VAL]], [[CNT]] 205587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc >>= cnt; 205687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 205787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <16 x i8> [[VAL]], <i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5> 205887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sc >>= 5; 205987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 206087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 206187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <16 x i8> [[VAL]], [[CNT]] 206287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc >>= sc2; 206387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 206487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 206587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <16 x i8> [[VAL]], [[CNT]] 206687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc >>= uc2; 206787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 206887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <16 x i32> undef, i32 [[T1]], i32 0 206987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <16 x i32> [[T2]], <16 x i32> undef, <16 x i32> zeroinitializer 207087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 207187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <16 x i32> [[T3]] to <16 x i8> 207287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <16 x i8> [[VAL]], [[CNT]] 207387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc >>= cnt; 207487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 207587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <16 x i8> [[VAL]], <i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5> 207687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar uc >>= 5; 207787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 207887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 207987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 208087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <8 x i16> [[VAL]], [[CNT]] 208187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss >>= ss2; 208287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 208387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 208487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <8 x i16> [[VAL]], [[CNT]] 208587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss >>= us2; 208687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 208787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <8 x i32> undef, i32 [[T1]], i32 0 208887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <8 x i32> [[T2]], <8 x i32> undef, <8 x i32> zeroinitializer 208987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 209087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <8 x i32> [[T3]] to <8 x i16> 209187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <8 x i16> [[VAL]], [[CNT]] 209287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss >>= cnt; 209387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 209487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <8 x i16> [[VAL]], <i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5> 209587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ss >>= 5; 209687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 209787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 209887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <8 x i16> [[VAL]], [[CNT]] 209987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us >>= ss2; 210087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 210187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 210287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <8 x i16> [[VAL]], [[CNT]] 210387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us >>= us2; 210487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 210587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <8 x i32> undef, i32 [[T1]], i32 0 210687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <8 x i32> [[T2]], <8 x i32> undef, <8 x i32> zeroinitializer 210787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 210887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = trunc <8 x i32> [[T3]] to <8 x i16> 210987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <8 x i16> [[VAL]], [[CNT]] 211087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us >>= cnt; 211187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 211287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <8 x i16> [[VAL]], <i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5> 211387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar us >>= 5; 211487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 211587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 211687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 211787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <4 x i32> [[VAL]], [[CNT]] 211887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si >>= si2; 211987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 212087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 212187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <4 x i32> [[VAL]], [[CNT]] 212287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si >>= ui2; 212387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 212487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = insertelement <4 x i32> undef, i32 [[T1]], i32 0 212587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = shufflevector <4 x i32> [[T3]], <4 x i32> undef, <4 x i32> zeroinitializer 212687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 212787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <4 x i32> [[VAL]], [[CNT]] 212887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si >>= cnt; 212987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 213087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <4 x i32> [[VAL]], <i32 5, i32 5, i32 5, i32 5> 213187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si >>= 5; 213287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 213387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 213487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <4 x i32> [[VAL]], [[CNT]] 213587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui >>= si2; 213687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 213787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 213887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <4 x i32> [[VAL]], [[CNT]] 213987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui >>= ui2; 214087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 214187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = insertelement <4 x i32> undef, i32 [[T1]], i32 0 214287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = shufflevector <4 x i32> [[T3]], <4 x i32> undef, <4 x i32> zeroinitializer 214387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 214487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <4 x i32> [[VAL]], [[CNT]] 214587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui >>= cnt; 214687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 214787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <4 x i32> [[VAL]], <i32 5, i32 5, i32 5, i32 5> 214887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ui >>= 5; 214987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 215087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 215187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 215287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <2 x i64> [[VAL]], [[CNT]] 215387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl >>= sl2; 215487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 215587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 215687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <2 x i64> [[VAL]], [[CNT]] 215787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl >>= ul2; 215887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 215987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <2 x i32> undef, i32 [[T1]], i32 0 216087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <2 x i32> [[T2]], <2 x i32> undef, <2 x i32> zeroinitializer 216187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 216287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = zext <2 x i32> [[T3]] to <2 x i64> 216387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <2 x i64> [[VAL]], [[CNT]] 216487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl >>= cnt; 216587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 216687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = ashr <2 x i64> [[VAL]], <i64 5, i64 5> 216787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar sl >>= 5; 216887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 216987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 217087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <2 x i64> [[VAL]], [[CNT]] 217187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul >>= sl2; 217287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 217387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 217487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <2 x i64> [[VAL]], [[CNT]] 217587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul >>= ul2; 217687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T1:%[^ ]+]] = load volatile i32, i32* @cnt 217787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T2:%[^ ]+]] = insertelement <2 x i32> undef, i32 [[T1]], i32 0 217887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[T3:%[^ ]+]] = shufflevector <2 x i32> [[T2]], <2 x i32> undef, <2 x i32> zeroinitializer 217987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 218087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CNT:%[^ ]+]] = zext <2 x i32> [[T3]] to <2 x i64> 218187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <2 x i64> [[VAL]], [[CNT]] 218287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul >>= cnt; 218387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 218487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = lshr <2 x i64> [[VAL]], <i64 5, i64 5> 218587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ul >>= 5; 218687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 218787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 218887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 218987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_cmpeq (void) 219087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 219187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_cmpeq 219287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 219387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 219487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 219587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <16 x i8> [[VAL1]], [[VAL2]] 219687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 219787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = sc == sc2; 219887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 219987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 220087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <16 x i8> [[VAL1]], [[VAL2]] 220187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 220287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = sc == bc2; 220387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 220487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 220587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <16 x i8> [[VAL1]], [[VAL2]] 220687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 220787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc == sc2; 220887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 220987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 221087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <16 x i8> [[VAL1]], [[VAL2]] 221187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 221287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = uc == uc2; 221387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 221487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 221587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <16 x i8> [[VAL1]], [[VAL2]] 221687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 221787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = uc == bc2; 221887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 221987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 222087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <16 x i8> [[VAL1]], [[VAL2]] 222187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 222287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc == uc2; 222387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 222487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 222587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <16 x i8> [[VAL1]], [[VAL2]] 222687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 222787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc == bc2; 222887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 222987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 223087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 223187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <8 x i16> [[VAL1]], [[VAL2]] 223287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 223387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = ss == ss2; 223487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 223587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 223687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <8 x i16> [[VAL1]], [[VAL2]] 223787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 223887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = ss == bs2; 223987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 224087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 224187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <8 x i16> [[VAL1]], [[VAL2]] 224287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 224387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs == ss2; 224487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 224587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 224687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <8 x i16> [[VAL1]], [[VAL2]] 224787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 224887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = us == us2; 224987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 225087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 225187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <8 x i16> [[VAL1]], [[VAL2]] 225287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 225387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = us == bs2; 225487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 225587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 225687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <8 x i16> [[VAL1]], [[VAL2]] 225787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 225887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs == us2; 225987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 226087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 226187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <8 x i16> [[VAL1]], [[VAL2]] 226287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 226387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs == bs2; 226487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 226587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 226687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 226787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <4 x i32> [[VAL1]], [[VAL2]] 226887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 226987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = si == si2; 227087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 227187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 227287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <4 x i32> [[VAL1]], [[VAL2]] 227387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 227487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = si == bi2; 227587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 227687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 227787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <4 x i32> [[VAL1]], [[VAL2]] 227887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 227987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi == si2; 228087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 228187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 228287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <4 x i32> [[VAL1]], [[VAL2]] 228387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 228487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = ui == ui2; 228587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 228687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 228787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <4 x i32> [[VAL1]], [[VAL2]] 228887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 228987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = ui == bi2; 229087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 229187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 229287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <4 x i32> [[VAL1]], [[VAL2]] 229387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 229487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi == ui2; 229587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 229687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 229787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <4 x i32> [[VAL1]], [[VAL2]] 229887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 229987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi == bi2; 230087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 230187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 230287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 230387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <2 x i64> [[VAL1]], [[VAL2]] 230487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 230587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = sl == sl2; 230687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 230787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 230887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <2 x i64> [[VAL1]], [[VAL2]] 230987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 231087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = sl == bl2; 231187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 231287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 231387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <2 x i64> [[VAL1]], [[VAL2]] 231487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 231587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl == sl2; 231687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 231787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 231887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <2 x i64> [[VAL1]], [[VAL2]] 231987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 232087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = ul == ul2; 232187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 232287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 232387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <2 x i64> [[VAL1]], [[VAL2]] 232487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 232587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = ul == bl2; 232687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 232787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 232887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <2 x i64> [[VAL1]], [[VAL2]] 232987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 233087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl == ul2; 233187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 233287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 233387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp eq <2 x i64> [[VAL1]], [[VAL2]] 233487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 233587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl == bl2; 233687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 233787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 233887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 233987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = fcmp oeq <2 x double> [[VAL1]], [[VAL2]] 234087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 234187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = fd == fd2; 234287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 234387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 234487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_cmpne (void) 234587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 234687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_cmpne 234787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 234887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 234987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 235087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <16 x i8> [[VAL1]], [[VAL2]] 235187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 235287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = sc != sc2; 235387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 235487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 235587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <16 x i8> [[VAL1]], [[VAL2]] 235687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 235787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = sc != bc2; 235887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 235987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 236087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <16 x i8> [[VAL1]], [[VAL2]] 236187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 236287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc != sc2; 236387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 236487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 236587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <16 x i8> [[VAL1]], [[VAL2]] 236687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 236787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = uc != uc2; 236887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 236987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 237087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <16 x i8> [[VAL1]], [[VAL2]] 237187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 237287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = uc != bc2; 237387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 237487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 237587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <16 x i8> [[VAL1]], [[VAL2]] 237687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 237787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc != uc2; 237887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 237987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 238087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <16 x i8> [[VAL1]], [[VAL2]] 238187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 238287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc != bc2; 238387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 238487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 238587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 238687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <8 x i16> [[VAL1]], [[VAL2]] 238787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 238887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = ss != ss2; 238987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 239087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 239187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <8 x i16> [[VAL1]], [[VAL2]] 239287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 239387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = ss != bs2; 239487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 239587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 239687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <8 x i16> [[VAL1]], [[VAL2]] 239787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 239887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs != ss2; 239987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 240087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 240187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <8 x i16> [[VAL1]], [[VAL2]] 240287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 240387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = us != us2; 240487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 240587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 240687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <8 x i16> [[VAL1]], [[VAL2]] 240787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 240887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = us != bs2; 240987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 241087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 241187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <8 x i16> [[VAL1]], [[VAL2]] 241287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 241387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs != us2; 241487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 241587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 241687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <8 x i16> [[VAL1]], [[VAL2]] 241787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 241887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs != bs2; 241987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 242087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 242187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 242287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <4 x i32> [[VAL1]], [[VAL2]] 242387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 242487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = si != si2; 242587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 242687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 242787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <4 x i32> [[VAL1]], [[VAL2]] 242887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 242987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = si != bi2; 243087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 243187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 243287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <4 x i32> [[VAL1]], [[VAL2]] 243387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 243487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi != si2; 243587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 243687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 243787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <4 x i32> [[VAL1]], [[VAL2]] 243887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 243987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = ui != ui2; 244087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 244187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 244287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <4 x i32> [[VAL1]], [[VAL2]] 244387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 244487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = ui != bi2; 244587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 244687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 244787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <4 x i32> [[VAL1]], [[VAL2]] 244887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 244987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi != ui2; 245087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 245187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 245287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <4 x i32> [[VAL1]], [[VAL2]] 245387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 245487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi != bi2; 245587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 245687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 245787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 245887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <2 x i64> [[VAL1]], [[VAL2]] 245987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 246087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = sl != sl2; 246187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 246287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 246387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <2 x i64> [[VAL1]], [[VAL2]] 246487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 246587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = sl != bl2; 246687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 246787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 246887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <2 x i64> [[VAL1]], [[VAL2]] 246987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 247087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl != sl2; 247187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 247287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 247387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <2 x i64> [[VAL1]], [[VAL2]] 247487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 247587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = ul != ul2; 247687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 247787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 247887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <2 x i64> [[VAL1]], [[VAL2]] 247987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 248087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = ul != bl2; 248187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 248287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 248387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <2 x i64> [[VAL1]], [[VAL2]] 248487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 248587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl != ul2; 248687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 248787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 248887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ne <2 x i64> [[VAL1]], [[VAL2]] 248987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 249087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl != bl2; 249187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 249287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 249387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 249487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = fcmp une <2 x double> [[VAL1]], [[VAL2]] 249587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 249687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = fd != fd2; 249787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 249887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 249987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_cmpge (void) 250087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 250187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_cmpge 250287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 250387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 250487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 250587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp sge <16 x i8> [[VAL1]], [[VAL2]] 250687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 250787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = sc >= sc2; 250887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 250987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 251087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp uge <16 x i8> [[VAL1]], [[VAL2]] 251187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 251287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = uc >= uc2; 251387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 251487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 251587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp uge <16 x i8> [[VAL1]], [[VAL2]] 251687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 251787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc >= bc2; 251887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 251987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 252087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 252187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp sge <8 x i16> [[VAL1]], [[VAL2]] 252287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 252387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = ss >= ss2; 252487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 252587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 252687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp uge <8 x i16> [[VAL1]], [[VAL2]] 252787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 252887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = us >= us2; 252987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 253087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 253187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp uge <8 x i16> [[VAL1]], [[VAL2]] 253287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 253387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs >= bs2; 253487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 253587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 253687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 253787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp sge <4 x i32> [[VAL1]], [[VAL2]] 253887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 253987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = si >= si2; 254087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 254187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 254287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp uge <4 x i32> [[VAL1]], [[VAL2]] 254387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 254487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = ui >= ui2; 254587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 254687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 254787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp uge <4 x i32> [[VAL1]], [[VAL2]] 254887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 254987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi >= bi2; 255087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 255187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 255287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 255387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp sge <2 x i64> [[VAL1]], [[VAL2]] 255487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 255587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = sl >= sl2; 255687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 255787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 255887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp uge <2 x i64> [[VAL1]], [[VAL2]] 255987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 256087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = ul >= ul2; 256187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 256287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 256387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp uge <2 x i64> [[VAL1]], [[VAL2]] 256487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 256587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl >= bl2; 256687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 256787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 256887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 256987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = fcmp oge <2 x double> [[VAL1]], [[VAL2]] 257087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 257187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = fd >= fd2; 257287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 257387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 257487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_cmpgt (void) 257587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 257687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_cmpgt 257787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 257887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 257987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 258087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp sgt <16 x i8> [[VAL1]], [[VAL2]] 258187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 258287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = sc > sc2; 258387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 258487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 258587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ugt <16 x i8> [[VAL1]], [[VAL2]] 258687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 258787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = uc > uc2; 258887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 258987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 259087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ugt <16 x i8> [[VAL1]], [[VAL2]] 259187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 259287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc > bc2; 259387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 259487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 259587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 259687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp sgt <8 x i16> [[VAL1]], [[VAL2]] 259787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 259887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = ss > ss2; 259987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 260087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 260187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ugt <8 x i16> [[VAL1]], [[VAL2]] 260287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 260387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = us > us2; 260487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 260587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 260687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ugt <8 x i16> [[VAL1]], [[VAL2]] 260787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 260887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs > bs2; 260987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 261087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 261187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 261287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp sgt <4 x i32> [[VAL1]], [[VAL2]] 261387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 261487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = si > si2; 261587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 261687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 261787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ugt <4 x i32> [[VAL1]], [[VAL2]] 261887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 261987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = ui > ui2; 262087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 262187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 262287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ugt <4 x i32> [[VAL1]], [[VAL2]] 262387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 262487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi > bi2; 262587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 262687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 262787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 262887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp sgt <2 x i64> [[VAL1]], [[VAL2]] 262987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 263087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = sl > sl2; 263187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 263287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 263387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ugt <2 x i64> [[VAL1]], [[VAL2]] 263487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 263587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = ul > ul2; 263687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 263787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 263887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ugt <2 x i64> [[VAL1]], [[VAL2]] 263987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 264087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl > bl2; 264187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 264287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 264387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 264487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = fcmp ogt <2 x double> [[VAL1]], [[VAL2]] 264587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 264687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = fd > fd2; 264787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 264887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 264987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_cmple (void) 265087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 265187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_cmple 265287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 265387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 265487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 265587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp sle <16 x i8> [[VAL1]], [[VAL2]] 265687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 265787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = sc <= sc2; 265887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 265987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 266087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ule <16 x i8> [[VAL1]], [[VAL2]] 266187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 266287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = uc <= uc2; 266387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 266487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 266587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ule <16 x i8> [[VAL1]], [[VAL2]] 266687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 266787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc <= bc2; 266887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 266987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 267087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 267187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp sle <8 x i16> [[VAL1]], [[VAL2]] 267287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 267387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = ss <= ss2; 267487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 267587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 267687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ule <8 x i16> [[VAL1]], [[VAL2]] 267787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 267887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = us <= us2; 267987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 268087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 268187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ule <8 x i16> [[VAL1]], [[VAL2]] 268287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 268387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs <= bs2; 268487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 268587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 268687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 268787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp sle <4 x i32> [[VAL1]], [[VAL2]] 268887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 268987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = si <= si2; 269087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 269187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 269287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ule <4 x i32> [[VAL1]], [[VAL2]] 269387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 269487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = ui <= ui2; 269587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 269687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 269787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ule <4 x i32> [[VAL1]], [[VAL2]] 269887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 269987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi <= bi2; 270087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 270187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 270287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 270387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp sle <2 x i64> [[VAL1]], [[VAL2]] 270487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 270587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = sl <= sl2; 270687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 270787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 270887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ule <2 x i64> [[VAL1]], [[VAL2]] 270987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 271087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = ul <= ul2; 271187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 271287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 271387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ule <2 x i64> [[VAL1]], [[VAL2]] 271487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 271587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl <= bl2; 271687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 271787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 271887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 271987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = fcmp ole <2 x double> [[VAL1]], [[VAL2]] 272087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 272187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = fd <= fd2; 272287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 272387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 272487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid test_cmplt (void) 272587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar{ 272687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK-LABEL: test_cmplt 272787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 272887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc 272987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @sc2 273087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp slt <16 x i8> [[VAL1]], [[VAL2]] 273187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 273287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = sc < sc2; 273387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc 273487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @uc2 273587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ult <16 x i8> [[VAL1]], [[VAL2]] 273687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 273787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = uc < uc2; 273887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc 273987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <16 x i8>, <16 x i8>* @bc2 274087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ult <16 x i8> [[VAL1]], [[VAL2]] 274187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <16 x i1> [[CMP]] to <16 x i8> 274287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bc = bc < bc2; 274387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 274487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss 274587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @ss2 274687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp slt <8 x i16> [[VAL1]], [[VAL2]] 274787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 274887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = ss < ss2; 274987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us 275087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @us2 275187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ult <8 x i16> [[VAL1]], [[VAL2]] 275287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 275387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = us < us2; 275487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs 275587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <8 x i16>, <8 x i16>* @bs2 275687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ult <8 x i16> [[VAL1]], [[VAL2]] 275787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <8 x i1> [[CMP]] to <8 x i16> 275887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bs = bs < bs2; 275987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 276087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si 276187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @si2 276287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp slt <4 x i32> [[VAL1]], [[VAL2]] 276387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 276487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = si < si2; 276587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui 276687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @ui2 276787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ult <4 x i32> [[VAL1]], [[VAL2]] 276887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 276987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = ui < ui2; 277087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi 277187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <4 x i32>, <4 x i32>* @bi2 277287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ult <4 x i32> [[VAL1]], [[VAL2]] 277387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <4 x i1> [[CMP]] to <4 x i32> 277487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bi = bi < bi2; 277587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 277687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl 277787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @sl2 277887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp slt <2 x i64> [[VAL1]], [[VAL2]] 277987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 278087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = sl < sl2; 278187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul 278287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @ul2 278387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ult <2 x i64> [[VAL1]], [[VAL2]] 278487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 278587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = ul < ul2; 278687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl 278787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x i64>, <2 x i64>* @bl2 278887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = icmp ult <2 x i64> [[VAL1]], [[VAL2]] 278987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 279087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = bl < bl2; 279187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 279287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL1:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd 279387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[VAL2:%[^ ]+]] = load volatile <2 x double>, <2 x double>* @fd2 279487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: [[CMP:%[^ ]+]] = fcmp olt <2 x double> [[VAL1]], [[VAL2]] 279587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: %{{.*}} = sext <2 x i1> [[CMP]] to <2 x i64> 279687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar bl = fd < fd2; 279787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 279887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 2799