brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.7 KiB · af6b0b8 Raw
101 lines · c
1// REQUIRES: powerpc-registered-target2// RUN: %clang_cc1 -triple powerpc64-unknown-linux-gnu \3// RUN:   -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s4// RUN: %clang_cc1 -triple powerpc64-unknown-aix \5// RUN:   -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s6 7extern double a;8extern double b;9extern double c;10extern float d;11extern float e;12extern float f;13 14// CHECK-LABEL: @test_swdiv_nochk(15// CHECK:    [[TMP0:%.*]] = load double, ptr @a, align 816// CHECK-NEXT:    [[TMP1:%.*]] = load double, ptr @b, align 817// CHECK-NEXT:    [[SWDIV_NOCHK:%.*]] = fdiv fast double [[TMP0]], [[TMP1]]18// CHECK-NEXT:    ret double [[SWDIV_NOCHK]]19//20double test_swdiv_nochk() {21  return __swdiv_nochk(a, b);22}23 24// CHECK-LABEL: @test_swdivs_nochk(25// CHECK:    [[TMP0:%.*]] = load float, ptr @d, align 426// CHECK-NEXT:    [[TMP1:%.*]] = load float, ptr @e, align 427// CHECK-NEXT:    [[SWDIV_NOCHK:%.*]] = fdiv fast float [[TMP0]], [[TMP1]]28// CHECK-NEXT:    ret float [[SWDIV_NOCHK]]29//30float test_swdivs_nochk() {31  return __swdivs_nochk(d, e);32}33 34// CHECK-LABEL: @test_flags_swdiv_nochk(35// CHECK:    [[TMP0:%.*]] = load double, ptr @a, align 836// CHECK-NEXT:    [[TMP1:%.*]] = load double, ptr @b, align 837// CHECK-NEXT:    [[SWDIV_NOCHK:%.*]] = fdiv fast double [[TMP0]], [[TMP1]]38// CHECK-NEXT:    [[TMP2:%.*]] = load double, ptr @c, align 839// CHECK-NEXT:    [[ADD:%.*]] = fadd double [[SWDIV_NOCHK]], [[TMP2]]40// CHECK-NEXT:    ret double [[ADD]]41//42double test_flags_swdiv_nochk() {43  return __swdiv_nochk(a, b) + c;44}45 46// CHECK-LABEL: @test_flags_swdivs_nochk(47// CHECK:    [[TMP0:%.*]] = load float, ptr @d, align 448// CHECK-NEXT:    [[TMP1:%.*]] = load float, ptr @e, align 449// CHECK-NEXT:    [[SWDIV_NOCHK:%.*]] = fdiv fast float [[TMP0]], [[TMP1]]50// CHECK-NEXT:    [[TMP2:%.*]] = load float, ptr @f, align 451// CHECK-NEXT:    [[ADD:%.*]] = fadd float [[SWDIV_NOCHK]], [[TMP2]]52// CHECK-NEXT:    ret float [[ADD]]53//54float test_flags_swdivs_nochk() {55  return __swdivs_nochk(d, e) + f;56}57 58// CHECK-LABEL: @test_builtin_ppc_swdiv_nochk(59// CHECK:    [[TMP0:%.*]] = load double, ptr @a, align 860// CHECK-NEXT:    [[TMP1:%.*]] = load double, ptr @b, align 861// CHECK-NEXT:    [[SWDIV_NOCHK:%.*]] = fdiv fast double [[TMP0]], [[TMP1]]62// CHECK-NEXT:    ret double [[SWDIV_NOCHK]]63//64double test_builtin_ppc_swdiv_nochk() {65  return __builtin_ppc_swdiv_nochk(a, b);66}67 68// CHECK-LABEL: @test_builtin_ppc_swdivs_nochk(69// CHECK:    [[TMP0:%.*]] = load float, ptr @d, align 470// CHECK-NEXT:    [[TMP1:%.*]] = load float, ptr @e, align 471// CHECK-NEXT:    [[SWDIV_NOCHK:%.*]] = fdiv fast float [[TMP0]], [[TMP1]]72// CHECK-NEXT:    ret float [[SWDIV_NOCHK]]73//74float test_builtin_ppc_swdivs_nochk() {75  return __builtin_ppc_swdivs_nochk(d, e);76}77 78// CHECK-LABEL: @test_flags_builtin_ppc_swdiv_nochk(79// CHECK:    [[TMP0:%.*]] = load double, ptr @a, align 880// CHECK-NEXT:    [[TMP1:%.*]] = load double, ptr @b, align 881// CHECK-NEXT:    [[SWDIV_NOCHK:%.*]] = fdiv fast double [[TMP0]], [[TMP1]]82// CHECK-NEXT:    [[TMP2:%.*]] = load double, ptr @c, align 883// CHECK-NEXT:    [[ADD:%.*]] = fadd double [[SWDIV_NOCHK]], [[TMP2]]84// CHECK-NEXT:    ret double [[ADD]]85//86double test_flags_builtin_ppc_swdiv_nochk() {87  return __builtin_ppc_swdiv_nochk(a, b) + c;88}89 90// CHECK-LABEL: @test_flags_builtin_ppc_swdivs_nochk(91// CHECK:    [[TMP0:%.*]] = load float, ptr @d, align 492// CHECK-NEXT:    [[TMP1:%.*]] = load float, ptr @e, align 493// CHECK-NEXT:    [[SWDIV_NOCHK:%.*]] = fdiv fast float [[TMP0]], [[TMP1]]94// CHECK-NEXT:    [[TMP2:%.*]] = load float, ptr @f, align 495// CHECK-NEXT:    [[ADD:%.*]] = fadd float [[SWDIV_NOCHK]], [[TMP2]]96// CHECK-NEXT:    ret float [[ADD]]97//98float test_flags_builtin_ppc_swdivs_nochk() {99  return __builtin_ppc_swdivs_nochk(d, e) + f;100}101