blob: bd4f2cfa2071c1d97b19360ee44b362de57b3fa3 [file] [log] [blame]
Benjamin Kramer9a502492012-07-12 09:33:03 +00001// RUN: %clang_cc1 -triple x86_64-unknown-unknown -target-feature +rdrnd -emit-llvm -S -emit-llvm -o - %s | FileCheck %s
2#include <immintrin.h>
3
Benjamin Kramera1c387e2012-07-12 09:56:18 +00004// Don't include mm_malloc.h, it's system specific.
5#define __MM_MALLOC_H
6
Benjamin Kramer9a502492012-07-12 09:33:03 +00007int rdrand16(unsigned short *p) {
8 return _rdrand16_step(p);
9// CHECK: @rdrand16
10// CHECK: call { i16, i32 } @llvm.x86.rdrand.16
11// CHECK: store i16
12}
13
14int rdrand32(unsigned *p) {
15 return _rdrand32_step(p);
16// CHECK: @rdrand32
17// CHECK: call { i32, i32 } @llvm.x86.rdrand.32
18// CHECK: store i32
19}
20
21int rdrand64(unsigned long long *p) {
22 return _rdrand64_step(p);
23// CHECK: @rdrand64
24// CHECK: call { i64, i32 } @llvm.x86.rdrand.64
25// CHECK: store i64
26}