[Hexagon] Add HVX and control register names to Hexagon target

This commit is contained in:
Krzysztof Parzyszek 2021-06-14 17:12:35 -05:00
parent a58b2827fe
commit 0577f4b178
2 changed files with 951 additions and 6 deletions

View File

@ -132,14 +132,37 @@ bool HexagonTargetInfo::handleTargetFeatures(std::vector<std::string> &Features,
}
const char *const HexagonTargetInfo::GCCRegNames[] = {
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8",
"r9", "r10", "r11", "r12", "r13", "r14", "r15", "r16", "r17",
"r18", "r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26",
"r27", "r28", "r29", "r30", "r31", "p0", "p1", "p2", "p3",
"sa0", "lc0", "sa1", "lc1", "m0", "m1", "usr", "ugp", "cs0", "cs1",
// Scalar registers:
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11",
"r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", "r21",
"r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31",
"r1:0", "r3:2", "r5:4", "r7:6", "r9:8", "r11:10", "r13:12", "r15:14",
"r17:16", "r19:18", "r21:20", "r23:22", "r25:24", "r27:26", "r29:28",
"r31:30"
"r31:30",
// Predicate registers:
"p0", "p1", "p2", "p3",
// Control registers:
"c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "c10", "c11",
"c12", "c13", "c14", "c15", "c16", "c17", "c18", "c19", "c20", "c21",
"c22", "c23", "c24", "c25", "c26", "c27", "c28", "c29", "c30", "c31",
"c1:0", "c3:2", "c5:4", "c7:6", "c9:8", "c11:10", "c13:12", "c15:14",
"c17:16", "c19:18", "c21:20", "c23:22", "c25:24", "c27:26", "c29:28",
"c31:30",
// Control register aliases:
"sa0", "lc0", "sa1", "lc1", "p3:0", "m0", "m1", "usr", "pc", "ugp",
"gp", "cs0", "cs1", "upcyclelo", "upcyclehi", "framelimit", "framekey",
"pktcountlo", "pktcounthi", "utimerlo", "utimerhi",
"upcycle", "pktcount", "utimer",
// HVX vector registers:
"v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v8", "v9", "v10", "v11",
"v12", "v13", "v14", "v15", "v16", "v17", "v18", "v19", "v20", "v21",
"v22", "v23", "v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31",
"v1:0", "v3:2", "v5:4", "v7:6", "v9:8", "v11:10", "v13:12", "v15:14",
"v17:16", "v19:18", "v21:20", "v23:22", "v25:24", "v27:26", "v29:28",
"v31:30",
"v3:0", "v7:4", "v11:8", "v15:12", "v19:16", "v23:20", "v27:24", "v31:28",
// HVX vector predicates:
"q0", "q1", "q2", "q3",
};
ArrayRef<const char *> HexagonTargetInfo::getGCCRegNames() const {

View File

@ -0,0 +1,922 @@
// RUN: %clang_cc1 -triple hexagon-unknown-elf -target-feature +hvx -target-feature +hvx-length128b -emit-llvm -o - %s | FileCheck %s
void test_r0() {
// CHECK: define {{.*}}void @test_r0
// CHECK: call void asm sideeffect "nop", "~{r0}"()
asm("nop" ::: "r0");
}
void test_r1() {
// CHECK: define {{.*}}void @test_r1
// CHECK: call void asm sideeffect "nop", "~{r1}"()
asm("nop" ::: "r1");
}
void test_r2() {
// CHECK: define {{.*}}void @test_r2
// CHECK: call void asm sideeffect "nop", "~{r2}"()
asm("nop" ::: "r2");
}
void test_r3() {
// CHECK: define {{.*}}void @test_r3
// CHECK: call void asm sideeffect "nop", "~{r3}"()
asm("nop" ::: "r3");
}
void test_r4() {
// CHECK: define {{.*}}void @test_r4
// CHECK: call void asm sideeffect "nop", "~{r4}"()
asm("nop" ::: "r4");
}
void test_r5() {
// CHECK: define {{.*}}void @test_r5
// CHECK: call void asm sideeffect "nop", "~{r5}"()
asm("nop" ::: "r5");
}
void test_r6() {
// CHECK: define {{.*}}void @test_r6
// CHECK: call void asm sideeffect "nop", "~{r6}"()
asm("nop" ::: "r6");
}
void test_r7() {
// CHECK: define {{.*}}void @test_r7
// CHECK: call void asm sideeffect "nop", "~{r7}"()
asm("nop" ::: "r7");
}
void test_r8() {
// CHECK: define {{.*}}void @test_r8
// CHECK: call void asm sideeffect "nop", "~{r8}"()
asm("nop" ::: "r8");
}
void test_r9() {
// CHECK: define {{.*}}void @test_r9
// CHECK: call void asm sideeffect "nop", "~{r9}"()
asm("nop" ::: "r9");
}
void test_r10() {
// CHECK: define {{.*}}void @test_r10
// CHECK: call void asm sideeffect "nop", "~{r10}"()
asm("nop" ::: "r10");
}
void test_r11() {
// CHECK: define {{.*}}void @test_r11
// CHECK: call void asm sideeffect "nop", "~{r11}"()
asm("nop" ::: "r11");
}
void test_r12() {
// CHECK: define {{.*}}void @test_r12
// CHECK: call void asm sideeffect "nop", "~{r12}"()
asm("nop" ::: "r12");
}
void test_r13() {
// CHECK: define {{.*}}void @test_r13
// CHECK: call void asm sideeffect "nop", "~{r13}"()
asm("nop" ::: "r13");
}
void test_r14() {
// CHECK: define {{.*}}void @test_r14
// CHECK: call void asm sideeffect "nop", "~{r14}"()
asm("nop" ::: "r14");
}
void test_r15() {
// CHECK: define {{.*}}void @test_r15
// CHECK: call void asm sideeffect "nop", "~{r15}"()
asm("nop" ::: "r15");
}
void test_r16() {
// CHECK: define {{.*}}void @test_r16
// CHECK: call void asm sideeffect "nop", "~{r16}"()
asm("nop" ::: "r16");
}
void test_r17() {
// CHECK: define {{.*}}void @test_r17
// CHECK: call void asm sideeffect "nop", "~{r17}"()
asm("nop" ::: "r17");
}
void test_r18() {
// CHECK: define {{.*}}void @test_r18
// CHECK: call void asm sideeffect "nop", "~{r18}"()
asm("nop" ::: "r18");
}
void test_r19() {
// CHECK: define {{.*}}void @test_r19
// CHECK: call void asm sideeffect "nop", "~{r19}"()
asm("nop" ::: "r19");
}
void test_r20() {
// CHECK: define {{.*}}void @test_r20
// CHECK: call void asm sideeffect "nop", "~{r20}"()
asm("nop" ::: "r20");
}
void test_r21() {
// CHECK: define {{.*}}void @test_r21
// CHECK: call void asm sideeffect "nop", "~{r21}"()
asm("nop" ::: "r21");
}
void test_r22() {
// CHECK: define {{.*}}void @test_r22
// CHECK: call void asm sideeffect "nop", "~{r22}"()
asm("nop" ::: "r22");
}
void test_r23() {
// CHECK: define {{.*}}void @test_r23
// CHECK: call void asm sideeffect "nop", "~{r23}"()
asm("nop" ::: "r23");
}
void test_r24() {
// CHECK: define {{.*}}void @test_r24
// CHECK: call void asm sideeffect "nop", "~{r24}"()
asm("nop" ::: "r24");
}
void test_r25() {
// CHECK: define {{.*}}void @test_r25
// CHECK: call void asm sideeffect "nop", "~{r25}"()
asm("nop" ::: "r25");
}
void test_r26() {
// CHECK: define {{.*}}void @test_r26
// CHECK: call void asm sideeffect "nop", "~{r26}"()
asm("nop" ::: "r26");
}
void test_r27() {
// CHECK: define {{.*}}void @test_r27
// CHECK: call void asm sideeffect "nop", "~{r27}"()
asm("nop" ::: "r27");
}
void test_r28() {
// CHECK: define {{.*}}void @test_r28
// CHECK: call void asm sideeffect "nop", "~{r28}"()
asm("nop" ::: "r28");
}
void test_r29() {
// CHECK: define {{.*}}void @test_r29
// CHECK: call void asm sideeffect "nop", "~{r29}"()
asm("nop" ::: "r29");
}
void test_r30() {
// CHECK: define {{.*}}void @test_r30
// CHECK: call void asm sideeffect "nop", "~{r30}"()
asm("nop" ::: "r30");
}
void test_r31() {
// CHECK: define {{.*}}void @test_r31
// CHECK: call void asm sideeffect "nop", "~{r31}"()
asm("nop" ::: "r31");
}
void test_r1_0() {
// CHECK: define {{.*}}void @test_r1_0
// CHECK: call void asm sideeffect "nop", "~{r1:0}"()
asm("nop" ::: "r1:0");
}
void test_r3_2() {
// CHECK: define {{.*}}void @test_r3_2
// CHECK: call void asm sideeffect "nop", "~{r3:2}"()
asm("nop" ::: "r3:2");
}
void test_r5_4() {
// CHECK: define {{.*}}void @test_r5_4
// CHECK: call void asm sideeffect "nop", "~{r5:4}"()
asm("nop" ::: "r5:4");
}
void test_r7_6() {
// CHECK: define {{.*}}void @test_r7_6
// CHECK: call void asm sideeffect "nop", "~{r7:6}"()
asm("nop" ::: "r7:6");
}
void test_r9_8() {
// CHECK: define {{.*}}void @test_r9_8
// CHECK: call void asm sideeffect "nop", "~{r9:8}"()
asm("nop" ::: "r9:8");
}
void test_r11_10() {
// CHECK: define {{.*}}void @test_r11_10
// CHECK: call void asm sideeffect "nop", "~{r11:10}"()
asm("nop" ::: "r11:10");
}
void test_r13_12() {
// CHECK: define {{.*}}void @test_r13_12
// CHECK: call void asm sideeffect "nop", "~{r13:12}"()
asm("nop" ::: "r13:12");
}
void test_r15_14() {
// CHECK: define {{.*}}void @test_r15_14
// CHECK: call void asm sideeffect "nop", "~{r15:14}"()
asm("nop" ::: "r15:14");
}
void test_r17_16() {
// CHECK: define {{.*}}void @test_r17_16
// CHECK: call void asm sideeffect "nop", "~{r17:16}"()
asm("nop" ::: "r17:16");
}
void test_r19_18() {
// CHECK: define {{.*}}void @test_r19_18
// CHECK: call void asm sideeffect "nop", "~{r19:18}"()
asm("nop" ::: "r19:18");
}
void test_r21_20() {
// CHECK: define {{.*}}void @test_r21_20
// CHECK: call void asm sideeffect "nop", "~{r21:20}"()
asm("nop" ::: "r21:20");
}
void test_r23_22() {
// CHECK: define {{.*}}void @test_r23_22
// CHECK: call void asm sideeffect "nop", "~{r23:22}"()
asm("nop" ::: "r23:22");
}
void test_r25_24() {
// CHECK: define {{.*}}void @test_r25_24
// CHECK: call void asm sideeffect "nop", "~{r25:24}"()
asm("nop" ::: "r25:24");
}
void test_r27_26() {
// CHECK: define {{.*}}void @test_r27_26
// CHECK: call void asm sideeffect "nop", "~{r27:26}"()
asm("nop" ::: "r27:26");
}
void test_r29_28() {
// CHECK: define {{.*}}void @test_r29_28
// CHECK: call void asm sideeffect "nop", "~{r29:28}"()
asm("nop" ::: "r29:28");
}
void test_r31_30() {
// CHECK: define {{.*}}void @test_r31_30
// CHECK: call void asm sideeffect "nop", "~{r31:30}"()
asm("nop" ::: "r31:30");
}
void test_p0() {
// CHECK: define {{.*}}void @test_p0
// CHECK: call void asm sideeffect "nop", "~{p0}"()
asm("nop" ::: "p0");
}
void test_p1() {
// CHECK: define {{.*}}void @test_p1
// CHECK: call void asm sideeffect "nop", "~{p1}"()
asm("nop" ::: "p1");
}
void test_p2() {
// CHECK: define {{.*}}void @test_p2
// CHECK: call void asm sideeffect "nop", "~{p2}"()
asm("nop" ::: "p2");
}
void test_p3() {
// CHECK: define {{.*}}void @test_p3
// CHECK: call void asm sideeffect "nop", "~{p3}"()
asm("nop" ::: "p3");
}
void test_c0() {
// CHECK: define {{.*}}void @test_c0
// CHECK: call void asm sideeffect "nop", "~{c0}"()
asm("nop" ::: "c0");
}
void test_c1() {
// CHECK: define {{.*}}void @test_c1
// CHECK: call void asm sideeffect "nop", "~{c1}"()
asm("nop" ::: "c1");
}
void test_c2() {
// CHECK: define {{.*}}void @test_c2
// CHECK: call void asm sideeffect "nop", "~{c2}"()
asm("nop" ::: "c2");
}
void test_c3() {
// CHECK: define {{.*}}void @test_c3
// CHECK: call void asm sideeffect "nop", "~{c3}"()
asm("nop" ::: "c3");
}
void test_c4() {
// CHECK: define {{.*}}void @test_c4
// CHECK: call void asm sideeffect "nop", "~{c4}"()
asm("nop" ::: "c4");
}
void test_c5() {
// CHECK: define {{.*}}void @test_c5
// CHECK: call void asm sideeffect "nop", "~{c5}"()
asm("nop" ::: "c5");
}
void test_c6() {
// CHECK: define {{.*}}void @test_c6
// CHECK: call void asm sideeffect "nop", "~{c6}"()
asm("nop" ::: "c6");
}
void test_c7() {
// CHECK: define {{.*}}void @test_c7
// CHECK: call void asm sideeffect "nop", "~{c7}"()
asm("nop" ::: "c7");
}
void test_c8() {
// CHECK: define {{.*}}void @test_c8
// CHECK: call void asm sideeffect "nop", "~{c8}"()
asm("nop" ::: "c8");
}
void test_c9() {
// CHECK: define {{.*}}void @test_c9
// CHECK: call void asm sideeffect "nop", "~{c9}"()
asm("nop" ::: "c9");
}
void test_c10() {
// CHECK: define {{.*}}void @test_c10
// CHECK: call void asm sideeffect "nop", "~{c10}"()
asm("nop" ::: "c10");
}
void test_c11() {
// CHECK: define {{.*}}void @test_c11
// CHECK: call void asm sideeffect "nop", "~{c11}"()
asm("nop" ::: "c11");
}
void test_c12() {
// CHECK: define {{.*}}void @test_c12
// CHECK: call void asm sideeffect "nop", "~{c12}"()
asm("nop" ::: "c12");
}
void test_c13() {
// CHECK: define {{.*}}void @test_c13
// CHECK: call void asm sideeffect "nop", "~{c13}"()
asm("nop" ::: "c13");
}
void test_c14() {
// CHECK: define {{.*}}void @test_c14
// CHECK: call void asm sideeffect "nop", "~{c14}"()
asm("nop" ::: "c14");
}
void test_c15() {
// CHECK: define {{.*}}void @test_c15
// CHECK: call void asm sideeffect "nop", "~{c15}"()
asm("nop" ::: "c15");
}
void test_c16() {
// CHECK: define {{.*}}void @test_c16
// CHECK: call void asm sideeffect "nop", "~{c16}"()
asm("nop" ::: "c16");
}
void test_c17() {
// CHECK: define {{.*}}void @test_c17
// CHECK: call void asm sideeffect "nop", "~{c17}"()
asm("nop" ::: "c17");
}
void test_c18() {
// CHECK: define {{.*}}void @test_c18
// CHECK: call void asm sideeffect "nop", "~{c18}"()
asm("nop" ::: "c18");
}
void test_c19() {
// CHECK: define {{.*}}void @test_c19
// CHECK: call void asm sideeffect "nop", "~{c19}"()
asm("nop" ::: "c19");
}
void test_c20() {
// CHECK: define {{.*}}void @test_c20
// CHECK: call void asm sideeffect "nop", "~{c20}"()
asm("nop" ::: "c20");
}
void test_c21() {
// CHECK: define {{.*}}void @test_c21
// CHECK: call void asm sideeffect "nop", "~{c21}"()
asm("nop" ::: "c21");
}
void test_c22() {
// CHECK: define {{.*}}void @test_c22
// CHECK: call void asm sideeffect "nop", "~{c22}"()
asm("nop" ::: "c22");
}
void test_c23() {
// CHECK: define {{.*}}void @test_c23
// CHECK: call void asm sideeffect "nop", "~{c23}"()
asm("nop" ::: "c23");
}
void test_c24() {
// CHECK: define {{.*}}void @test_c24
// CHECK: call void asm sideeffect "nop", "~{c24}"()
asm("nop" ::: "c24");
}
void test_c25() {
// CHECK: define {{.*}}void @test_c25
// CHECK: call void asm sideeffect "nop", "~{c25}"()
asm("nop" ::: "c25");
}
void test_c26() {
// CHECK: define {{.*}}void @test_c26
// CHECK: call void asm sideeffect "nop", "~{c26}"()
asm("nop" ::: "c26");
}
void test_c27() {
// CHECK: define {{.*}}void @test_c27
// CHECK: call void asm sideeffect "nop", "~{c27}"()
asm("nop" ::: "c27");
}
void test_c28() {
// CHECK: define {{.*}}void @test_c28
// CHECK: call void asm sideeffect "nop", "~{c28}"()
asm("nop" ::: "c28");
}
void test_c29() {
// CHECK: define {{.*}}void @test_c29
// CHECK: call void asm sideeffect "nop", "~{c29}"()
asm("nop" ::: "c29");
}
void test_c30() {
// CHECK: define {{.*}}void @test_c30
// CHECK: call void asm sideeffect "nop", "~{c30}"()
asm("nop" ::: "c30");
}
void test_c31() {
// CHECK: define {{.*}}void @test_c31
// CHECK: call void asm sideeffect "nop", "~{c31}"()
asm("nop" ::: "c31");
}
void test_c1_0() {
// CHECK: define {{.*}}void @test_c1_0
// CHECK: call void asm sideeffect "nop", "~{c1:0}"()
asm("nop" ::: "c1:0");
}
void test_c3_2() {
// CHECK: define {{.*}}void @test_c3_2
// CHECK: call void asm sideeffect "nop", "~{c3:2}"()
asm("nop" ::: "c3:2");
}
void test_c5_4() {
// CHECK: define {{.*}}void @test_c5_4
// CHECK: call void asm sideeffect "nop", "~{c5:4}"()
asm("nop" ::: "c5:4");
}
void test_c7_6() {
// CHECK: define {{.*}}void @test_c7_6
// CHECK: call void asm sideeffect "nop", "~{c7:6}"()
asm("nop" ::: "c7:6");
}
void test_c9_8() {
// CHECK: define {{.*}}void @test_c9_8
// CHECK: call void asm sideeffect "nop", "~{c9:8}"()
asm("nop" ::: "c9:8");
}
void test_c11_10() {
// CHECK: define {{.*}}void @test_c11_10
// CHECK: call void asm sideeffect "nop", "~{c11:10}"()
asm("nop" ::: "c11:10");
}
void test_c13_12() {
// CHECK: define {{.*}}void @test_c13_12
// CHECK: call void asm sideeffect "nop", "~{c13:12}"()
asm("nop" ::: "c13:12");
}
void test_c15_14() {
// CHECK: define {{.*}}void @test_c15_14
// CHECK: call void asm sideeffect "nop", "~{c15:14}"()
asm("nop" ::: "c15:14");
}
void test_c17_16() {
// CHECK: define {{.*}}void @test_c17_16
// CHECK: call void asm sideeffect "nop", "~{c17:16}"()
asm("nop" ::: "c17:16");
}
void test_c19_18() {
// CHECK: define {{.*}}void @test_c19_18
// CHECK: call void asm sideeffect "nop", "~{c19:18}"()
asm("nop" ::: "c19:18");
}
void test_c21_20() {
// CHECK: define {{.*}}void @test_c21_20
// CHECK: call void asm sideeffect "nop", "~{c21:20}"()
asm("nop" ::: "c21:20");
}
void test_c23_22() {
// CHECK: define {{.*}}void @test_c23_22
// CHECK: call void asm sideeffect "nop", "~{c23:22}"()
asm("nop" ::: "c23:22");
}
void test_c25_24() {
// CHECK: define {{.*}}void @test_c25_24
// CHECK: call void asm sideeffect "nop", "~{c25:24}"()
asm("nop" ::: "c25:24");
}
void test_c27_26() {
// CHECK: define {{.*}}void @test_c27_26
// CHECK: call void asm sideeffect "nop", "~{c27:26}"()
asm("nop" ::: "c27:26");
}
void test_c29_28() {
// CHECK: define {{.*}}void @test_c29_28
// CHECK: call void asm sideeffect "nop", "~{c29:28}"()
asm("nop" ::: "c29:28");
}
void test_c31_30() {
// CHECK: define {{.*}}void @test_c31_30
// CHECK: call void asm sideeffect "nop", "~{c31:30}"()
asm("nop" ::: "c31:30");
}
void test_sa0() {
// CHECK: define {{.*}}void @test_sa0
// CHECK: call void asm sideeffect "nop", "~{sa0}"()
asm("nop" ::: "sa0");
}
void test_lc0() {
// CHECK: define {{.*}}void @test_lc0
// CHECK: call void asm sideeffect "nop", "~{lc0}"()
asm("nop" ::: "lc0");
}
void test_sa1() {
// CHECK: define {{.*}}void @test_sa1
// CHECK: call void asm sideeffect "nop", "~{sa1}"()
asm("nop" ::: "sa1");
}
void test_lc1() {
// CHECK: define {{.*}}void @test_lc1
// CHECK: call void asm sideeffect "nop", "~{lc1}"()
asm("nop" ::: "lc1");
}
void test_p3_0() {
// CHECK: define {{.*}}void @test_p3_0
// CHECK: call void asm sideeffect "nop", "~{p3:0}"()
asm("nop" ::: "p3:0");
}
void test_m0() {
// CHECK: define {{.*}}void @test_m0
// CHECK: call void asm sideeffect "nop", "~{m0}"()
asm("nop" ::: "m0");
}
void test_m1() {
// CHECK: define {{.*}}void @test_m1
// CHECK: call void asm sideeffect "nop", "~{m1}"()
asm("nop" ::: "m1");
}
void test_usr() {
// CHECK: define {{.*}}void @test_usr
// CHECK: call void asm sideeffect "nop", "~{usr}"()
asm("nop" ::: "usr");
}
void test_pc() {
// CHECK: define {{.*}}void @test_pc
// CHECK: call void asm sideeffect "nop", "~{pc}"()
asm("nop" ::: "pc");
}
void test_ugp() {
// CHECK: define {{.*}}void @test_ugp
// CHECK: call void asm sideeffect "nop", "~{ugp}"()
asm("nop" ::: "ugp");
}
void test_gp() {
// CHECK: define {{.*}}void @test_gp
// CHECK: call void asm sideeffect "nop", "~{gp}"()
asm("nop" ::: "gp");
}
void test_cs0() {
// CHECK: define {{.*}}void @test_cs0
// CHECK: call void asm sideeffect "nop", "~{cs0}"()
asm("nop" ::: "cs0");
}
void test_cs1() {
// CHECK: define {{.*}}void @test_cs1
// CHECK: call void asm sideeffect "nop", "~{cs1}"()
asm("nop" ::: "cs1");
}
void test_upcyclelo() {
// CHECK: define {{.*}}void @test_upcyclelo
// CHECK: call void asm sideeffect "nop", "~{upcyclelo}"()
asm("nop" ::: "upcyclelo");
}
void test_upcyclehi() {
// CHECK: define {{.*}}void @test_upcyclehi
// CHECK: call void asm sideeffect "nop", "~{upcyclehi}"()
asm("nop" ::: "upcyclehi");
}
void test_framelimit() {
// CHECK: define {{.*}}void @test_framelimit
// CHECK: call void asm sideeffect "nop", "~{framelimit}"()
asm("nop" ::: "framelimit");
}
void test_framekey() {
// CHECK: define {{.*}}void @test_framekey
// CHECK: call void asm sideeffect "nop", "~{framekey}"()
asm("nop" ::: "framekey");
}
void test_pktcountlo() {
// CHECK: define {{.*}}void @test_pktcountlo
// CHECK: call void asm sideeffect "nop", "~{pktcountlo}"()
asm("nop" ::: "pktcountlo");
}
void test_pktcounthi() {
// CHECK: define {{.*}}void @test_pktcounthi
// CHECK: call void asm sideeffect "nop", "~{pktcounthi}"()
asm("nop" ::: "pktcounthi");
}
void test_utimerlo() {
// CHECK: define {{.*}}void @test_utimerlo
// CHECK: call void asm sideeffect "nop", "~{utimerlo}"()
asm("nop" ::: "utimerlo");
}
void test_utimerhi() {
// CHECK: define {{.*}}void @test_utimerhi
// CHECK: call void asm sideeffect "nop", "~{utimerhi}"()
asm("nop" ::: "utimerhi");
}
void test_upcycle() {
// CHECK: define {{.*}}void @test_upcycle
// CHECK: call void asm sideeffect "nop", "~{upcycle}"()
asm("nop" ::: "upcycle");
}
void test_pktcount() {
// CHECK: define {{.*}}void @test_pktcount
// CHECK: call void asm sideeffect "nop", "~{pktcount}"()
asm("nop" ::: "pktcount");
}
void test_utimer() {
// CHECK: define {{.*}}void @test_utimer
// CHECK: call void asm sideeffect "nop", "~{utimer}"()
asm("nop" ::: "utimer");
}
void test_v0() {
// CHECK: define {{.*}}void @test_v0
// CHECK: call void asm sideeffect "nop", "~{v0}"()
asm("nop" ::: "v0");
}
void test_v1() {
// CHECK: define {{.*}}void @test_v1
// CHECK: call void asm sideeffect "nop", "~{v1}"()
asm("nop" ::: "v1");
}
void test_v2() {
// CHECK: define {{.*}}void @test_v2
// CHECK: call void asm sideeffect "nop", "~{v2}"()
asm("nop" ::: "v2");
}
void test_v3() {
// CHECK: define {{.*}}void @test_v3
// CHECK: call void asm sideeffect "nop", "~{v3}"()
asm("nop" ::: "v3");
}
void test_v4() {
// CHECK: define {{.*}}void @test_v4
// CHECK: call void asm sideeffect "nop", "~{v4}"()
asm("nop" ::: "v4");
}
void test_v5() {
// CHECK: define {{.*}}void @test_v5
// CHECK: call void asm sideeffect "nop", "~{v5}"()
asm("nop" ::: "v5");
}
void test_v6() {
// CHECK: define {{.*}}void @test_v6
// CHECK: call void asm sideeffect "nop", "~{v6}"()
asm("nop" ::: "v6");
}
void test_v7() {
// CHECK: define {{.*}}void @test_v7
// CHECK: call void asm sideeffect "nop", "~{v7}"()
asm("nop" ::: "v7");
}
void test_v8() {
// CHECK: define {{.*}}void @test_v8
// CHECK: call void asm sideeffect "nop", "~{v8}"()
asm("nop" ::: "v8");
}
void test_v9() {
// CHECK: define {{.*}}void @test_v9
// CHECK: call void asm sideeffect "nop", "~{v9}"()
asm("nop" ::: "v9");
}
void test_v10() {
// CHECK: define {{.*}}void @test_v10
// CHECK: call void asm sideeffect "nop", "~{v10}"()
asm("nop" ::: "v10");
}
void test_v11() {
// CHECK: define {{.*}}void @test_v11
// CHECK: call void asm sideeffect "nop", "~{v11}"()
asm("nop" ::: "v11");
}
void test_v12() {
// CHECK: define {{.*}}void @test_v12
// CHECK: call void asm sideeffect "nop", "~{v12}"()
asm("nop" ::: "v12");
}
void test_v13() {
// CHECK: define {{.*}}void @test_v13
// CHECK: call void asm sideeffect "nop", "~{v13}"()
asm("nop" ::: "v13");
}
void test_v14() {
// CHECK: define {{.*}}void @test_v14
// CHECK: call void asm sideeffect "nop", "~{v14}"()
asm("nop" ::: "v14");
}
void test_v15() {
// CHECK: define {{.*}}void @test_v15
// CHECK: call void asm sideeffect "nop", "~{v15}"()
asm("nop" ::: "v15");
}
void test_v16() {
// CHECK: define {{.*}}void @test_v16
// CHECK: call void asm sideeffect "nop", "~{v16}"()
asm("nop" ::: "v16");
}
void test_v17() {
// CHECK: define {{.*}}void @test_v17
// CHECK: call void asm sideeffect "nop", "~{v17}"()
asm("nop" ::: "v17");
}
void test_v18() {
// CHECK: define {{.*}}void @test_v18
// CHECK: call void asm sideeffect "nop", "~{v18}"()
asm("nop" ::: "v18");
}
void test_v19() {
// CHECK: define {{.*}}void @test_v19
// CHECK: call void asm sideeffect "nop", "~{v19}"()
asm("nop" ::: "v19");
}
void test_v20() {
// CHECK: define {{.*}}void @test_v20
// CHECK: call void asm sideeffect "nop", "~{v20}"()
asm("nop" ::: "v20");
}
void test_v21() {
// CHECK: define {{.*}}void @test_v21
// CHECK: call void asm sideeffect "nop", "~{v21}"()
asm("nop" ::: "v21");
}
void test_v22() {
// CHECK: define {{.*}}void @test_v22
// CHECK: call void asm sideeffect "nop", "~{v22}"()
asm("nop" ::: "v22");
}
void test_v23() {
// CHECK: define {{.*}}void @test_v23
// CHECK: call void asm sideeffect "nop", "~{v23}"()
asm("nop" ::: "v23");
}
void test_v24() {
// CHECK: define {{.*}}void @test_v24
// CHECK: call void asm sideeffect "nop", "~{v24}"()
asm("nop" ::: "v24");
}
void test_v25() {
// CHECK: define {{.*}}void @test_v25
// CHECK: call void asm sideeffect "nop", "~{v25}"()
asm("nop" ::: "v25");
}
void test_v26() {
// CHECK: define {{.*}}void @test_v26
// CHECK: call void asm sideeffect "nop", "~{v26}"()
asm("nop" ::: "v26");
}
void test_v27() {
// CHECK: define {{.*}}void @test_v27
// CHECK: call void asm sideeffect "nop", "~{v27}"()
asm("nop" ::: "v27");
}
void test_v28() {
// CHECK: define {{.*}}void @test_v28
// CHECK: call void asm sideeffect "nop", "~{v28}"()
asm("nop" ::: "v28");
}
void test_v29() {
// CHECK: define {{.*}}void @test_v29
// CHECK: call void asm sideeffect "nop", "~{v29}"()
asm("nop" ::: "v29");
}
void test_v30() {
// CHECK: define {{.*}}void @test_v30
// CHECK: call void asm sideeffect "nop", "~{v30}"()
asm("nop" ::: "v30");
}
void test_v31() {
// CHECK: define {{.*}}void @test_v31
// CHECK: call void asm sideeffect "nop", "~{v31}"()
asm("nop" ::: "v31");
}
void test_v1_0() {
// CHECK: define {{.*}}void @test_v1_0
// CHECK: call void asm sideeffect "nop", "~{v1:0}"()
asm("nop" ::: "v1:0");
}
void test_v3_2() {
// CHECK: define {{.*}}void @test_v3_2
// CHECK: call void asm sideeffect "nop", "~{v3:2}"()
asm("nop" ::: "v3:2");
}
void test_v5_4() {
// CHECK: define {{.*}}void @test_v5_4
// CHECK: call void asm sideeffect "nop", "~{v5:4}"()
asm("nop" ::: "v5:4");
}
void test_v7_6() {
// CHECK: define {{.*}}void @test_v7_6
// CHECK: call void asm sideeffect "nop", "~{v7:6}"()
asm("nop" ::: "v7:6");
}
void test_v9_8() {
// CHECK: define {{.*}}void @test_v9_8
// CHECK: call void asm sideeffect "nop", "~{v9:8}"()
asm("nop" ::: "v9:8");
}
void test_v11_10() {
// CHECK: define {{.*}}void @test_v11_10
// CHECK: call void asm sideeffect "nop", "~{v11:10}"()
asm("nop" ::: "v11:10");
}
void test_v13_12() {
// CHECK: define {{.*}}void @test_v13_12
// CHECK: call void asm sideeffect "nop", "~{v13:12}"()
asm("nop" ::: "v13:12");
}
void test_v15_14() {
// CHECK: define {{.*}}void @test_v15_14
// CHECK: call void asm sideeffect "nop", "~{v15:14}"()
asm("nop" ::: "v15:14");
}
void test_v17_16() {
// CHECK: define {{.*}}void @test_v17_16
// CHECK: call void asm sideeffect "nop", "~{v17:16}"()
asm("nop" ::: "v17:16");
}
void test_v19_18() {
// CHECK: define {{.*}}void @test_v19_18
// CHECK: call void asm sideeffect "nop", "~{v19:18}"()
asm("nop" ::: "v19:18");
}
void test_v21_20() {
// CHECK: define {{.*}}void @test_v21_20
// CHECK: call void asm sideeffect "nop", "~{v21:20}"()
asm("nop" ::: "v21:20");
}
void test_v23_22() {
// CHECK: define {{.*}}void @test_v23_22
// CHECK: call void asm sideeffect "nop", "~{v23:22}"()
asm("nop" ::: "v23:22");
}
void test_v25_24() {
// CHECK: define {{.*}}void @test_v25_24
// CHECK: call void asm sideeffect "nop", "~{v25:24}"()
asm("nop" ::: "v25:24");
}
void test_v27_26() {
// CHECK: define {{.*}}void @test_v27_26
// CHECK: call void asm sideeffect "nop", "~{v27:26}"()
asm("nop" ::: "v27:26");
}
void test_v29_28() {
// CHECK: define {{.*}}void @test_v29_28
// CHECK: call void asm sideeffect "nop", "~{v29:28}"()
asm("nop" ::: "v29:28");
}
void test_v31_30() {
// CHECK: define {{.*}}void @test_v31_30
// CHECK: call void asm sideeffect "nop", "~{v31:30}"()
asm("nop" ::: "v31:30");
}
void test_v3_0() {
// CHECK: define {{.*}}void @test_v3_0
// CHECK: call void asm sideeffect "nop", "~{v3:0}"()
asm("nop" ::: "v3:0");
}
void test_v7_4() {
// CHECK: define {{.*}}void @test_v7_4
// CHECK: call void asm sideeffect "nop", "~{v7:4}"()
asm("nop" ::: "v7:4");
}
void test_v11_8() {
// CHECK: define {{.*}}void @test_v11_8
// CHECK: call void asm sideeffect "nop", "~{v11:8}"()
asm("nop" ::: "v11:8");
}
void test_v15_12() {
// CHECK: define {{.*}}void @test_v15_12
// CHECK: call void asm sideeffect "nop", "~{v15:12}"()
asm("nop" ::: "v15:12");
}
void test_v19_16() {
// CHECK: define {{.*}}void @test_v19_16
// CHECK: call void asm sideeffect "nop", "~{v19:16}"()
asm("nop" ::: "v19:16");
}
void test_v23_20() {
// CHECK: define {{.*}}void @test_v23_20
// CHECK: call void asm sideeffect "nop", "~{v23:20}"()
asm("nop" ::: "v23:20");
}
void test_v27_24() {
// CHECK: define {{.*}}void @test_v27_24
// CHECK: call void asm sideeffect "nop", "~{v27:24}"()
asm("nop" ::: "v27:24");
}
void test_v31_28() {
// CHECK: define {{.*}}void @test_v31_28
// CHECK: call void asm sideeffect "nop", "~{v31:28}"()
asm("nop" ::: "v31:28");
}
void test_q0() {
// CHECK: define {{.*}}void @test_q0
// CHECK: call void asm sideeffect "nop", "~{q0}"()
asm("nop" ::: "q0");
}
void test_q1() {
// CHECK: define {{.*}}void @test_q1
// CHECK: call void asm sideeffect "nop", "~{q1}"()
asm("nop" ::: "q1");
}
void test_q2() {
// CHECK: define {{.*}}void @test_q2
// CHECK: call void asm sideeffect "nop", "~{q2}"()
asm("nop" ::: "q2");
}
void test_q3() {
// CHECK: define {{.*}}void @test_q3
// CHECK: call void asm sideeffect "nop", "~{q3}"()
asm("nop" ::: "q3");
}