1// RUN: %clang_cc1 -triple x86_64-pc-linux -emit-llvm %s -o - | FileCheck %s 2 3extern void foo_alias (void) __asm ("foo"); 4inline void foo (void) { 5 return foo_alias (); 6} 7extern int abs_alias (int) __asm ("abs"); 8inline __attribute__ ((__always_inline__)) int abs (int x) { 9 return abs_alias(x); 10} 11extern char *strrchr_foo (const char *__s, int __c) __asm ("strrchr"); 12extern inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * strrchr_foo (const char *__s, int __c) { 13 return __builtin_strrchr (__s, __c); 14} 15 16extern inline void __attribute__((always_inline, __gnu_inline__)) 17prefetch(void) { 18 __builtin_prefetch(0, 0, 1); 19} 20 21extern inline __attribute__((__always_inline__, __gnu_inline__)) void *memchr(void *__s, int __c, __SIZE_TYPE__ __n) { 22 return __builtin_memchr(__s, __c, __n); 23} 24 25void f(void) { 26 foo(); 27 abs(0); 28 strrchr_foo("", '.'); 29 prefetch(); 30 memchr("", '.', 0); 31} 32 33// CHECK-LABEL: define void @f() 34// CHECK: call void @foo() 35// CHECK: call i32 @abs(i32 0) 36// CHECK: call i8* @strrchr( 37// CHECK: call void @llvm.prefetch( 38// CHECK: call i8* @memchr( 39// CHECK: ret void 40 41// CHECK: declare void @foo() 42// CHECK: declare i32 @abs(i32 43// CHECK: declare i8* @strrchr(i8*, i32) 44// CHECK: declare i8* @memchr( 45// CHECK: declare void @llvm.prefetch( 46