1176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// RUN: %clang_cc1 -triple x86_64-unknown-unknown -ffreestanding -target-feature +adx -emit-llvm -o - %s | FileCheck %s
2176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
3176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines#include <x86intrin.h>
4176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
5176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesunsigned char test_addcarryx_u32(unsigned char __cf, unsigned int __x,
6176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines                                 unsigned int __y, unsigned int *__p) {
7176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// CHECK-LABEL: test_addcarryx_u32
8176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// CHECK: call i8 @llvm.x86.addcarryx.u32
9176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines  return _addcarryx_u32(__cf, __x, __y, __p);
10176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines}
11176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
12176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesunsigned char test_addcarryx_u64(unsigned char __cf, unsigned long long __x,
13176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines                                 unsigned long long __y,
14176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines                                 unsigned long long *__p) {
15176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// CHECK-LABEL: test_addcarryx_u64
16176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// CHECK: call i8 @llvm.x86.addcarryx.u64
17176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines  return _addcarryx_u64(__cf, __x, __y, __p);
18176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines}
19