|
1 | 1 | // REQUIRES: aarch64-registered-target
|
2 | 2 | // RUN: %clang_cc1 -triple arm64-none-linux-gnu \
|
3 | 3 | // RUN: -disable-O0-optnone -S -emit-llvm -o - %s | opt -S -mem2reg | FileCheck %s
|
| 4 | +// RUN: %clang_cc1 -triple aarch64-windows \ |
| 5 | +// RUN: -disable-O0-optnone -S -emit-llvm -o - %s | opt -S -mem2reg | FileCheck %s |
| 6 | +#include <stdint.h> |
4 | 7 |
|
5 |
| -int crc32b(int a, char b) |
| 8 | +uint32_t crc32b(uint32_t a, uint8_t b) |
6 | 9 | {
|
7 | 10 | return __builtin_arm_crc32b(a,b);
|
8 | 11 | // CHECK: [[T0:%[0-9]+]] = zext i8 %b to i32
|
9 | 12 | // CHECK: call i32 @llvm.aarch64.crc32b(i32 %a, i32 [[T0]])
|
10 | 13 | }
|
11 | 14 |
|
12 |
| -int crc32cb(int a, char b) |
| 15 | +uint32_t crc32cb(uint32_t a, uint8_t b) |
13 | 16 | {
|
14 | 17 | return __builtin_arm_crc32cb(a,b);
|
15 | 18 | // CHECK: [[T0:%[0-9]+]] = zext i8 %b to i32
|
16 | 19 | // CHECK: call i32 @llvm.aarch64.crc32cb(i32 %a, i32 [[T0]])
|
17 | 20 | }
|
18 | 21 |
|
19 |
| -int crc32h(int a, short b) |
| 22 | +uint32_t crc32h(uint32_t a, uint16_t b) |
20 | 23 | {
|
21 | 24 | return __builtin_arm_crc32h(a,b);
|
22 | 25 | // CHECK: [[T0:%[0-9]+]] = zext i16 %b to i32
|
23 | 26 | // CHECK: call i32 @llvm.aarch64.crc32h(i32 %a, i32 [[T0]])
|
24 | 27 | }
|
25 | 28 |
|
26 |
| -int crc32ch(int a, short b) |
| 29 | +uint32_t crc32ch(uint32_t a, uint16_t b) |
27 | 30 | {
|
28 | 31 | return __builtin_arm_crc32ch(a,b);
|
29 | 32 | // CHECK: [[T0:%[0-9]+]] = zext i16 %b to i32
|
30 | 33 | // CHECK: call i32 @llvm.aarch64.crc32ch(i32 %a, i32 [[T0]])
|
31 | 34 | }
|
32 | 35 |
|
33 |
| -int crc32w(int a, int b) |
| 36 | +uint32_t crc32w(uint32_t a, uint32_t b) |
34 | 37 | {
|
35 | 38 | return __builtin_arm_crc32w(a,b);
|
36 | 39 | // CHECK: call i32 @llvm.aarch64.crc32w(i32 %a, i32 %b)
|
37 | 40 | }
|
38 | 41 |
|
39 |
| -int crc32cw(int a, int b) |
| 42 | +uint32_t crc32cw(uint32_t a, uint32_t b) |
40 | 43 | {
|
41 | 44 | return __builtin_arm_crc32cw(a,b);
|
42 | 45 | // CHECK: call i32 @llvm.aarch64.crc32cw(i32 %a, i32 %b)
|
43 | 46 | }
|
44 | 47 |
|
45 |
| -int crc32d(int a, long b) |
| 48 | +uint32_t crc32d(uint32_t a, uint64_t b) |
46 | 49 | {
|
47 | 50 | return __builtin_arm_crc32d(a,b);
|
48 | 51 | // CHECK: call i32 @llvm.aarch64.crc32x(i32 %a, i64 %b)
|
49 | 52 | }
|
50 | 53 |
|
51 |
| -int crc32cd(int a, long b) |
| 54 | +uint32_t crc32cd(uint32_t a, uint64_t b) |
52 | 55 | {
|
53 | 56 | return __builtin_arm_crc32cd(a,b);
|
54 | 57 | // CHECK: call i32 @llvm.aarch64.crc32cx(i32 %a, i64 %b)
|
|
0 commit comments