diff --git a/dmd/dsymbolsem.d b/dmd/dsymbolsem.d
index dfd54f664f0..a7b62cf5a15 100644
--- a/dmd/dsymbolsem.d
+++ b/dmd/dsymbolsem.d
@@ -1526,6 +1526,15 @@ version (IN_LLVM)
                     dchar c = slice[i];
                     if (c < 0x80)
                     {
+                        version (IN_LLVM)
+                        {
+                            // LDC: allow leading "\1" to prevent target-specific prefix
+                            if (i == 0 && c == '\1')
+                            {
+                                ++i;
+                                continue;
+                            }
+                        }
                         if (c.isValidMangling)
                         {
                             ++i;
diff --git a/gen/mangling.cpp b/gen/mangling.cpp
index ce32e829eb7..a0e86ec2409 100644
--- a/gen/mangling.cpp
+++ b/gen/mangling.cpp
@@ -125,11 +125,15 @@ std::string getIRMangledName(VarDeclaration *vd) {
 }
 
 std::string getIRMangledFuncName(std::string baseMangle, LINK link) {
-  return gABI->mangleFunctionForLLVM(std::move(baseMangle), link);
+  return baseMangle[0] == '\1'
+             ? std::move(baseMangle)
+             : gABI->mangleFunctionForLLVM(std::move(baseMangle), link);
 }
 
 std::string getIRMangledVarName(std::string baseMangle, LINK link) {
-  return gABI->mangleVariableForLLVM(std::move(baseMangle), link);
+  return baseMangle[0] == '\1'
+             ? std::move(baseMangle)
+             : gABI->mangleVariableForLLVM(std::move(baseMangle), link);
 }
 
 std::string getIRMangledAggregateName(AggregateDeclaration *ad,
diff --git a/tests/codegen/mangling_raw.d b/tests/codegen/mangling_raw.d
new file mode 100644
index 00000000000..a2dc20c4531
--- /dev/null
+++ b/tests/codegen/mangling_raw.d
@@ -0,0 +1,11 @@
+// Tests that 'raw mangles' starting with "\1" are correctly propagated to IR.
+
+// RUN: %ldc -output-ll -of=%t.ll %s && FileCheck %s < %t.ll
+
+// CHECK: @"\01my$Global" = global i32
+pragma(mangle, "\1my$Global")
+__gshared int myGlobal;
+
+// CHECK: define {{.*}} @"\01my$Function"()
+pragma(mangle, "\1my$Function")
+void myFunction() {}