1*67e74705SXin Li // REQUIRES: powerpc-registered-target 2*67e74705SXin Li // RUN: %clang_cc1 -triple powerpc64-unknown-unknown -target-cpu pwr7 \ 3*67e74705SXin Li // RUN: -emit-llvm %s -o - | FileCheck %s 4*67e74705SXin Li 5*67e74705SXin Li // RUN: %clang_cc1 -triple powerpc64le-unknown-unknown -target-cpu pwr8 \ 6*67e74705SXin Li // RUN: -emit-llvm %s -o - | FileCheck %s 7*67e74705SXin Li 8*67e74705SXin Li // CHECK-LABEL: define signext i32 @test_divwe test_divwe(void)9*67e74705SXin Liint test_divwe(void) 10*67e74705SXin Li { 11*67e74705SXin Li int a = 74; 12*67e74705SXin Li int b = 32; 13*67e74705SXin Li return __builtin_divwe(a, b); 14*67e74705SXin Li // CHECK: @llvm.ppc.divwe 15*67e74705SXin Li } 16*67e74705SXin Li 17*67e74705SXin Li // CHECK-LABEL: define zeroext i32 @test_divweu test_divweu(void)18*67e74705SXin Liunsigned int test_divweu(void) 19*67e74705SXin Li { 20*67e74705SXin Li unsigned int a = 74; 21*67e74705SXin Li unsigned int b = 32; 22*67e74705SXin Li return __builtin_divweu(a, b); 23*67e74705SXin Li // CHECK: @llvm.ppc.divweu 24*67e74705SXin Li } 25*67e74705SXin Li 26*67e74705SXin Li // CHECK-LABEL: define i64 @test_divde test_divde(void)27*67e74705SXin Lilong long test_divde(void) 28*67e74705SXin Li { 29*67e74705SXin Li long long a = 74LL; 30*67e74705SXin Li long long b = 32LL; 31*67e74705SXin Li return __builtin_divde(a, b); 32*67e74705SXin Li // CHECK: @llvm.ppc.divde 33*67e74705SXin Li } 34*67e74705SXin Li 35*67e74705SXin Li // CHECK-LABEL: define i64 @test_divdeu test_divdeu(void)36*67e74705SXin Liunsigned long long test_divdeu(void) 37*67e74705SXin Li { 38*67e74705SXin Li unsigned long long a = 74ULL; 39*67e74705SXin Li unsigned long long b = 32ULL; 40*67e74705SXin Li return __builtin_divdeu(a, b); 41*67e74705SXin Li // CHECK: @llvm.ppc.divdeu 42*67e74705SXin Li } 43*67e74705SXin Li 44*67e74705SXin Li // CHECK-LABEL: define i64 @test_bpermd test_bpermd(void)45*67e74705SXin Lilong long test_bpermd(void) 46*67e74705SXin Li { 47*67e74705SXin Li long long a = 74LL; 48*67e74705SXin Li long long b = 32LL; 49*67e74705SXin Li return __builtin_bpermd(a, b); 50*67e74705SXin Li // CHECK: @llvm.ppc.bpermd 51*67e74705SXin Li } 52*67e74705SXin Li 53