1 // REQUIRES: powerpc-registered-target 2 // RUN: %clang_cc1 -O2 -triple powerpc64-unknown-linux-gnu \ 3 // RUN: -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s 4 // RUN: %clang_cc1 -O2 -triple powerpc64le-unknown-linux-gnu \ 5 // RUN: -emit-llvm %s -o - -target-cpu pwr8 | FileCheck %s 6 // RUN: %clang_cc1 -O2 -triple powerpc-unknown-aix \ 7 // RUN: -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s 8 // RUN: %clang_cc1 -O2 -triple powerpc64-unknown-aix \ 9 // RUN: -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s 10 11 extern double da; test_fcfid()12double test_fcfid() { 13 // CHECK-LABEL: test_fcfid 14 // CHECK-NEXT: entry: 15 // CHECK: double @llvm.ppc.fcfid(double %0) 16 return __builtin_ppc_fcfid(da); 17 } 18 test_xl_fcfid()19double test_xl_fcfid() { 20 // CHECK-LABEL: test_xl_fcfid 21 // CHECK-NEXT: entry: 22 // CHECK: double @llvm.ppc.fcfid(double %0) 23 return __fcfid(da); 24 } 25 test_fcfud()26double test_fcfud() { 27 // CHECK-LABEL: test_fcfud 28 // CHECK-NEXT: entry: 29 // CHECK: double @llvm.ppc.fcfud(double %0) 30 return __builtin_ppc_fcfud(da); 31 } 32 test_xl_fcfud()33double test_xl_fcfud() { 34 // CHECK-LABEL: test_xl_fcfud 35 // CHECK-NEXT: entry: 36 // CHECK: double @llvm.ppc.fcfud(double %0) 37 return __fcfud(da); 38 } 39 test_fctid()40double test_fctid() { 41 // CHECK-LABEL: test_fctid 42 // CHECK-NEXT: entry: 43 // CHECK: double @llvm.ppc.fctid(double %0) 44 return __builtin_ppc_fctid(da); 45 } 46 test_xl_fctid()47double test_xl_fctid() { 48 // CHECK-LABEL: test_xl_fctid 49 // CHECK-NEXT: entry: 50 // CHECK: double @llvm.ppc.fctid(double %0) 51 return __fctid(da); 52 } 53 test_fctidz()54double test_fctidz() { 55 // CHECK-LABEL: test_fctidz 56 // CHECK-NEXT: entry: 57 // CHECK: double @llvm.ppc.fctidz(double %0) 58 return __builtin_ppc_fctidz(da); 59 } 60 test_xl_fctidz()61double test_xl_fctidz() { 62 // CHECK-LABEL: test_xl_fctidz 63 // CHECK-NEXT: entry: 64 // CHECK: double @llvm.ppc.fctidz(double %0) 65 return __fctidz(da); 66 } 67 test_fctiw()68double test_fctiw() { 69 // CHECK-LABEL: test_fctiw 70 // CHECK-NEXT: entry: 71 // CHECK: double @llvm.ppc.fctiw(double %0) 72 return __builtin_ppc_fctiw(da); 73 } 74 test_xl_fctiw()75double test_xl_fctiw() { 76 // CHECK-LABEL: test_xl_fctiw 77 // CHECK-NEXT: entry: 78 // CHECK: double @llvm.ppc.fctiw(double %0) 79 return __fctiw(da); 80 } 81 test_fctiwz()82double test_fctiwz() { 83 // CHECK-LABEL: test_fctiwz 84 // CHECK-NEXT: entry: 85 // CHECK: double @llvm.ppc.fctiwz(double %0) 86 return __builtin_ppc_fctiwz(da); 87 } 88 test_xl_fctiwz()89double test_xl_fctiwz() { 90 // CHECK-LABEL: test_xl_fctiwz 91 // CHECK-NEXT: entry: 92 // CHECK: double @llvm.ppc.fctiwz(double %0) 93 return __fctiwz(da); 94 } 95 test_fctudz()96double test_fctudz() { 97 // CHECK-LABEL: test_fctudz 98 // CHECK-NEXT: entry: 99 // CHECK: double @llvm.ppc.fctudz(double %0) 100 return __builtin_ppc_fctudz(da); 101 } 102 test_xl_fctudz()103double test_xl_fctudz() { 104 // CHECK-LABEL: test_xl_fctudz 105 // CHECK-NEXT: entry: 106 // CHECK: double @llvm.ppc.fctudz(double %0) 107 return __fctudz(da); 108 } 109 test_fctuwz()110double test_fctuwz() { 111 // CHECK-LABEL: test_fctuwz 112 // CHECK-NEXT: entry: 113 // CHECK: double @llvm.ppc.fctuwz(double %0) 114 return __builtin_ppc_fctuwz(da); 115 } 116 test_xl_fctuwz()117double test_xl_fctuwz() { 118 // CHECK-LABEL: test_xl_fctuwz 119 // CHECK-NEXT: entry: 120 // CHECK: double @llvm.ppc.fctuwz(double %0) 121 return __fctuwz(da); 122 } 123