xref: /aosp_15_r20/external/clang/test/CodeGen/builtins-ppc-p7.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
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 Li int 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 Li unsigned 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 Li long 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 Li unsigned 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 Li long 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