2020-01-18 06:29:40 +08:00
|
|
|
// RUN: %clang_cc1 -triple hexagon -target-cpu hexagonv67 -target-feature +audio -emit-llvm -o - %s | FileCheck %s
|
2020-01-14 06:07:30 +08:00
|
|
|
// RUN: %clang_cc1 -triple hexagon -target-cpu hexagonv67t -target-feature +audio -emit-llvm -o - %s | FileCheck %s
|
2020-01-18 06:29:40 +08:00
|
|
|
|
|
|
|
// 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);
|
|
|
|
}
|
|
|
|
|