From 0577f4b1789eff410f5b28434a4f7854a50dc639 Mon Sep 17 00:00:00 2001 From: Krzysztof Parzyszek Date: Mon, 14 Jun 2021 17:12:35 -0500 Subject: [PATCH] [Hexagon] Add HVX and control register names to Hexagon target --- clang/lib/Basic/Targets/Hexagon.cpp | 35 +- clang/test/CodeGen/hexagon-inline-asm-reg-names.c | 922 ++++++++++++++++++++++ 2 files changed, 951 insertions(+), 6 deletions(-) create mode 100644 clang/test/CodeGen/hexagon-inline-asm-reg-names.c diff --git a/clang/lib/Basic/Targets/Hexagon.cpp b/clang/lib/Basic/Targets/Hexagon.cpp index d1613fb..9c37dee 100644 --- a/clang/lib/Basic/Targets/Hexagon.cpp +++ b/clang/lib/Basic/Targets/Hexagon.cpp @@ -132,14 +132,37 @@ bool HexagonTargetInfo::handleTargetFeatures(std::vector &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 HexagonTargetInfo::getGCCRegNames() const { diff --git a/clang/test/CodeGen/hexagon-inline-asm-reg-names.c b/clang/test/CodeGen/hexagon-inline-asm-reg-names.c new file mode 100644 index 0000000..2a107eb --- /dev/null +++ b/clang/test/CodeGen/hexagon-inline-asm-reg-names.c @@ -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"); +} -- 2.7.4