// REQUIRES: powerpc-registered-target
// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -target-cpu pwr7 \
// RUN: -emit-llvm %s -o - | FileCheck %s

// RUN: %clang_cc1 -triple powerpc64le-unknown-unknown -target-cpu pwr8 \
// RUN: -emit-llvm %s -o - | FileCheck %s

// CHECK-LABEL: define signext i32 @test_divwe
int test_divwe(void)
{
  int a = 74;
  int b = 32;
  return __builtin_divwe(a, b);
// CHECK @llvm.ppc.divwe
}

// CHECK-LABEL: define zeroext i32 @test_divweu
unsigned int test_divweu(void)
{
  unsigned int a = 74;
  unsigned int b = 32;
  return __builtin_divweu(a, b);
// CHECK @llvm.ppc.divweu
}

// CHECK-LABEL: define i64 @test_divde
long long test_divde(void)
{
  long long a = 74LL;
  long long b = 32LL;
  return __builtin_divde(a, b);
// CHECK @llvm.ppc.divde
}

// CHECK-LABEL: define i64 @test_divdeu
unsigned long long test_divdeu(void)
{
  unsigned long long a = 74ULL;
  unsigned long long b = 32ULL;
  return __builtin_divdeu(a, b);
// CHECK @llvm.ppc.divdeu
}

// CHECK-LABEL: define i64 @test_bpermd
long long test_bpermd(void)
{
  long long a = 74LL;
  long long b = 32LL;
  return __builtin_bpermd(a, b);
// CHECK @llvm.ppc.bpermd
}

