1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
// RUN: %clang_cc1 -triple hexagon -target-cpu hexagonv67 -target-feature +audio -emit-llvm -o - %s | FileCheck %s
// RUN: %clang_cc1 -triple hexagon -target-cpu hexagonv67t -target-feature +audio -emit-llvm -o - %s | FileCheck %s
// CHECK-LABEL: @test1
// CHECK: call i64 @llvm.hexagon.M7.dcmpyrw(i64 %0, i64 %1)
long long test1(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_dcmpyrw(rss, rtt);
}
// CHECK-LABEL: @test2
// CHECK: call i64 @llvm.hexagon.M7.dcmpyrw.acc(i64 %0, i64 %1, i64 %2)
long long test2(long long rxx, long long rss, long long rtt) {
return __builtin_HEXAGON_M7_dcmpyrw_acc(rxx, rss, rtt);
}
// CHECK-LABEL: @test3
// CHECK: call i64 @llvm.hexagon.M7.dcmpyrwc(i64 %0, i64 %1)
long long test3(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_dcmpyrwc(rss, rtt);
}
// CHECK-LABEL: @test4
// CHECK: call i64 @llvm.hexagon.M7.dcmpyrwc.acc(i64 %0, i64 %1, i64 %2)
long long test4(long long rxx, long long rss, long long rtt) {
return __builtin_HEXAGON_M7_dcmpyrwc_acc(rxx, rss, rtt);
}
// CHECK-LABEL: @test5
// CHECK: call i64 @llvm.hexagon.M7.dcmpyiw(i64 %0, i64 %1)
long long test5(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_dcmpyiw(rss, rtt);
}
// CHECK-LABEL: @test6
// CHECK: call i64 @llvm.hexagon.M7.dcmpyiw.acc(i64 %0, i64 %1, i64 %2)
long long test6(long long rxx, long long rss, long long rtt) {
return __builtin_HEXAGON_M7_dcmpyiw_acc(rxx, rss, rtt);
}
// CHECK-LABEL: @test7
// CHECK: call i64 @llvm.hexagon.M7.dcmpyiwc(i64 %0, i64 %1)
long long test7(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_dcmpyiwc(rss, rtt);
}
// CHECK-LABEL: @test8
// CHECK: call i64 @llvm.hexagon.M7.dcmpyiwc.acc(i64 %0, i64 %1, i64 %2)
long long test8(long long rxx, long long rss, long long rtt) {
return __builtin_HEXAGON_M7_dcmpyiwc_acc(rxx, rss, rtt);
}
// CHECK-LABEL: @test9
// CHECK: call i32 @llvm.hexagon.M7.wcmpyrw(i64 %0, i64 %1)
int test9(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_wcmpyrw(rss, rtt);
}
// CHECK-LABEL: @test10
// CHECK: call i32 @llvm.hexagon.M7.wcmpyrwc(i64 %0, i64 %1)
int test10(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_wcmpyrwc(rss, rtt);
}
// CHECK-LABEL: @test11
// CHECK: call i32 @llvm.hexagon.M7.wcmpyiw(i64 %0, i64 %1)
int test11(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_wcmpyiw(rss, rtt);
}
// CHECK-LABEL: @test12
// CHECK: call i32 @llvm.hexagon.M7.wcmpyiwc(i64 %0, i64 %1)
int test12(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_wcmpyiwc(rss, rtt);
}
// CHECK-LABEL: @test13
// CHECK: call i32 @llvm.hexagon.M7.wcmpyrw.rnd(i64 %0, i64 %1)
int test13(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_wcmpyrw_rnd(rss, rtt);
}
// CHECK-LABEL: @test14
// CHECK: call i32 @llvm.hexagon.M7.wcmpyrwc.rnd(i64 %0, i64 %1)
int test14(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_wcmpyrwc_rnd(rss, rtt);
}
// CHECK-LABEL: @test15
// CHECK: call i32 @llvm.hexagon.M7.wcmpyiw.rnd(i64 %0, i64 %1)
int test15(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_wcmpyiw_rnd(rss, rtt);
}
// CHECK-LABEL: @test16
// CHECK: call i32 @llvm.hexagon.M7.wcmpyiwc.rnd(i64 %0, i64 %1)
int test16(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_wcmpyiwc_rnd(rss, rtt);
}
// CHECK-LABEL: @test17
// CHECK: call i64 @llvm.hexagon.A7.croundd.ri(i64 %0, i32 0)
long long test17(long long rss) {
return __builtin_HEXAGON_A7_croundd_ri(rss, 0);
}
// CHECK-LABEL: @test18
// CHECK: call i64 @llvm.hexagon.A7.croundd.rr(i64 %0, i32 %1)
long long test18(long long rss, int rt) {
return __builtin_HEXAGON_A7_croundd_rr(rss, rt);
}
// CHECK-LABEL: @test19
// CHECK: call i32 @llvm.hexagon.A7.clip(i32 %0, i32 0)
int test19(int rs) {
return __builtin_HEXAGON_A7_clip(rs, 0);
}
// CHECK-LABEL: @test20
// CHECK: call i64 @llvm.hexagon.A7.vclip(i64 %0, i32 0)
long long test20(long long rs) {
return __builtin_HEXAGON_A7_vclip(rs, 0);
}
// CHECK-LABEL: @test21
// CHECK: call i64 @llvm.hexagon.M7.vdmpy(i64 %0, i64 %1)
long long test21(long long rss, long long rtt) {
return __builtin_HEXAGON_M7_vdmpy(rss, rtt);
}
// CHECK-LABEL: @test22
// CHECK: call i64 @llvm.hexagon.M7.vdmpy.acc(i64 %0, i64 %1, i64 %2)
long long test22(long long rxx, long long rss, long long rtt) {
return __builtin_HEXAGON_M7_vdmpy_acc(rxx, rss, rtt);
}
|