// 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
}

