1 | // RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s |
2 | |
3 | // PR27085 |
4 | |
5 | typedef unsigned char uchar4 __attribute__ ((vector_size (4))); |
6 | |
7 | // CHECK: @add2 |
8 | // CHECK: add <4 x i8> {{.*}}, <i8 2, i8 2, i8 2, i8 2> |
9 | uchar4 add2(uchar4 v) |
10 | { |
11 | return v + 2; |
12 | } |
13 | |
14 | // CHECK: @sub2 |
15 | // CHECK: sub <4 x i8> {{.*}}, <i8 2, i8 2, i8 2, i8 2> |
16 | uchar4 sub2(uchar4 v) |
17 | { |
18 | return v - 2; |
19 | } |
20 | |
21 | // CHECK: @mul2 |
22 | // CHECK: mul <4 x i8> {{.*}}, <i8 2, i8 2, i8 2, i8 2> |
23 | uchar4 mul2(uchar4 v) |
24 | { |
25 | return v * 2; |
26 | } |
27 | |
28 | // CHECK: @div2 |
29 | // CHECK: udiv <4 x i8> {{.*}}, <i8 2, i8 2, i8 2, i8 2> |
30 | uchar4 div2(uchar4 v) |
31 | { |
32 | return v / 2; |
33 | } |
34 | |
35 | typedef __attribute__(( ext_vector_type(4) )) unsigned char uchar4_ext; |
36 | |
37 | // CHECK: @div3_ext |
38 | // CHECK: udiv <4 x i8> %{{.*}}, <i8 3, i8 3, i8 3, i8 3> |
39 | uchar4_ext div3_ext(uchar4_ext v) |
40 | { |
41 | return v / 3; |
42 | } |
43 | |