| // REQUIRES: powerpc-registered-target |
| // RUN: %clang_cc1 -O2 -triple powerpc64-unknown-linux-gnu \ |
| // RUN: -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s |
| // RUN: %clang_cc1 -O2 -triple powerpc64le-unknown-linux-gnu \ |
| // RUN: -emit-llvm %s -o - -target-cpu pwr8 | FileCheck %s |
| // RUN: %clang_cc1 -O2 -triple powerpc-unknown-aix \ |
| // RUN: -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s |
| // RUN: %clang_cc1 -O2 -triple powerpc64-unknown-aix \ |
| // RUN: -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s |
| |
| extern double da; |
| double test_fcfid() { |
| // CHECK-LABEL: test_fcfid |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fcfid(double %0) |
| return __builtin_ppc_fcfid(da); |
| } |
| |
| double test_xl_fcfid() { |
| // CHECK-LABEL: test_xl_fcfid |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fcfid(double %0) |
| return __fcfid(da); |
| } |
| |
| double test_fcfud() { |
| // CHECK-LABEL: test_fcfud |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fcfud(double %0) |
| return __builtin_ppc_fcfud(da); |
| } |
| |
| double test_xl_fcfud() { |
| // CHECK-LABEL: test_xl_fcfud |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fcfud(double %0) |
| return __fcfud(da); |
| } |
| |
| double test_fctid() { |
| // CHECK-LABEL: test_fctid |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fctid(double %0) |
| return __builtin_ppc_fctid(da); |
| } |
| |
| double test_xl_fctid() { |
| // CHECK-LABEL: test_xl_fctid |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fctid(double %0) |
| return __fctid(da); |
| } |
| |
| double test_fctidz() { |
| // CHECK-LABEL: test_fctidz |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fctidz(double %0) |
| return __builtin_ppc_fctidz(da); |
| } |
| |
| double test_xl_fctidz() { |
| // CHECK-LABEL: test_xl_fctidz |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fctidz(double %0) |
| return __fctidz(da); |
| } |
| |
| double test_fctiw() { |
| // CHECK-LABEL: test_fctiw |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fctiw(double %0) |
| return __builtin_ppc_fctiw(da); |
| } |
| |
| double test_xl_fctiw() { |
| // CHECK-LABEL: test_xl_fctiw |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fctiw(double %0) |
| return __fctiw(da); |
| } |
| |
| double test_fctiwz() { |
| // CHECK-LABEL: test_fctiwz |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fctiwz(double %0) |
| return __builtin_ppc_fctiwz(da); |
| } |
| |
| double test_xl_fctiwz() { |
| // CHECK-LABEL: test_xl_fctiwz |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fctiwz(double %0) |
| return __fctiwz(da); |
| } |
| |
| double test_fctudz() { |
| // CHECK-LABEL: test_fctudz |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fctudz(double %0) |
| return __builtin_ppc_fctudz(da); |
| } |
| |
| double test_xl_fctudz() { |
| // CHECK-LABEL: test_xl_fctudz |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fctudz(double %0) |
| return __fctudz(da); |
| } |
| |
| double test_fctuwz() { |
| // CHECK-LABEL: test_fctuwz |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fctuwz(double %0) |
| return __builtin_ppc_fctuwz(da); |
| } |
| |
| double test_xl_fctuwz() { |
| // CHECK-LABEL: test_xl_fctuwz |
| // CHECK-NEXT: entry: |
| // CHECK: double @llvm.ppc.fctuwz(double %0) |
| return __fctuwz(da); |
| } |