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