Re: r288093 - Use ${:uid} to generate unique MS asm labels, not {:uid}

2016-12-06 Thread Sean Silva via cfe-commits
Thanks.

2016-12-06 16:28 GMT-08:00 Reid Kleckner :

> Comments in r288868. It implements GCC's %= inline asm feature, and we're
> just using it from MS-style inline asm to avoid duplicate labels clashing.
>
> 2016-12-01 0:37 GMT-08:00 Sean Silva :
>
>> what is this ${:uid} thing? Could the comment
>> in Sema::GetOrCreateMSAsmLabel explain it?
>>
>> -- Sean Silva
>>
>> On Mon, Nov 28, 2016 at 4:39 PM, Reid Kleckner via cfe-commits <
>> cfe-commits@lists.llvm.org> wrote:
>>
>>> Author: rnk
>>> Date: Mon Nov 28 18:39:37 2016
>>> New Revision: 288093
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=288093=rev
>>> Log:
>>> Use ${:uid} to generate unique MS asm labels, not {:uid}
>>>
>>> Modified:
>>> cfe/trunk/lib/Sema/SemaStmtAsm.cpp
>>> cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c
>>> cfe/trunk/test/CodeGen/ms-inline-asm.c
>>> cfe/trunk/test/CodeGen/ms-inline-asm.cpp
>>>
>>> Modified: cfe/trunk/lib/Sema/SemaStmtAsm.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaS
>>> tmtAsm.cpp?rev=288093=288092=288093=diff
>>> 
>>> ==
>>> --- cfe/trunk/lib/Sema/SemaStmtAsm.cpp (original)
>>> +++ cfe/trunk/lib/Sema/SemaStmtAsm.cpp Mon Nov 28 18:39:37 2016
>>> @@ -753,7 +753,7 @@ LabelDecl *Sema::GetOrCreateMSAsmLabel(S
>>>  // Create an internal name for the label.  The name should not be a
>>> valid mangled
>>>  // name, and should be unique.  We use a dot to make the name an
>>> invalid mangled
>>>  // name.
>>> -OS << "__MSASMLABEL_.{:uid}__";
>>> +OS << "__MSASMLABEL_.${:uid}__";
>>>  for (char C : ExternalLabelName) {
>>>OS << C;
>>>// We escape '$' in asm strings by replacing it with "$$"
>>>
>>> Modified: cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c
>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/m
>>> ozilla-ms-inline-asm.c?rev=288093=288092=288093=diff
>>> 
>>> ==
>>> --- cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c (original)
>>> +++ cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c Mon Nov 28 18:39:37
>>> 2016
>>> @@ -20,7 +20,7 @@ void invoke(void* that, unsigned methodI
>>>  // CHECK: call void asm sideeffect inteldialect
>>>  // CHECK: mov edx,dword ptr $1
>>>  // CHECK: test edx,edx
>>> -// CHECK: jz {{[^_]*}}__MSASMLABEL_.{:uid}__noparams
>>> +// CHECK: jz {{[^_]*}}__MSASMLABEL_.${:uid}__noparams
>>>  // ^ Can't use {{.*}} here because the matching is greedy.
>>>  // CHECK: mov eax,edx
>>>  // CHECK: shl eax,$$3
>>> @@ -28,7 +28,7 @@ void invoke(void* that, unsigned methodI
>>>  // CHECK: mov ecx,esp
>>>  // CHECK: push dword ptr $0
>>>  // CHECK: call dword ptr $2
>>> -// CHECK: {{.*}}__MSASMLABEL_.{:uid}__noparams:
>>> +// CHECK: {{.*}}__MSASMLABEL_.${:uid}__noparams:
>>>  // CHECK: mov ecx,dword ptr $3
>>>  // CHECK: push ecx
>>>  // CHECK: mov edx,[ecx]
>>>
>>> Modified: cfe/trunk/test/CodeGen/ms-inline-asm.c
>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/m
>>> s-inline-asm.c?rev=288093=288092=288093=diff
>>> 
>>> ==
>>> --- cfe/trunk/test/CodeGen/ms-inline-asm.c (original)
>>> +++ cfe/trunk/test/CodeGen/ms-inline-asm.c Mon Nov 28 18:39:37 2016
>>> @@ -249,7 +249,7 @@ void t23() {
>>>the_label:
>>>}
>>>  // CHECK: t23
>>> -// CHECK: call void asm sideeffect inteldialect
>>> "{{.*}}__MSASMLABEL_.{:uid}__the_label:", "~{dirflag},~{fpsr},~{flags}"(
>>> )
>>> +// CHECK: call void asm sideeffect inteldialect
>>> "{{.*}}__MSASMLABEL_.${:uid}__the_label:",
>>> "~{dirflag},~{fpsr},~{flags}"()
>>>  }
>>>
>>>  void t24_helper(void) {}
>>> @@ -595,7 +595,7 @@ void label1() {
>>>  jmp label
>>>}
>>>// CHECK-LABEL: define void @label1()
>>> -  // CHECK: call void asm sideeffect inteldialect
>>> "{{.*}}__MSASMLABEL_.{:uid}__label:\0A\09jmp
>>> {{.*}}__MSASMLABEL_.{:uid}__label", "~{dirflag},~{fpsr},~{flags}"()
>>> [[ATTR1:#[0-9]+]]
>>> +  // CHECK: call void asm sideeffect inteldialect
>>> "{{.*}}__MSASMLABEL_.${:uid}__label:\0A\09jmp
>>> {{.*}}__MSASMLABEL_.${:uid}__label", "~{dirflag},~{fpsr},~{flags}"()
>>> [[ATTR1:#[0-9]+]]
>>>  }
>>>
>>>  void label2() {
>>> @@ -604,7 +604,7 @@ void label2() {
>>>  label:
>>>}
>>>// CHECK-LABEL: define void @label2
>>> -  // CHECK: call void asm sideeffect inteldialect "jmp
>>> {{.*}}__MSASMLABEL_.{:uid}__label\0A\09{{.*}}__MSASMLABEL_.{:uid}__label:",
>>> "~{dirflag},~{fpsr},~{flags}"()
>>> +  // CHECK: call void asm sideeffect inteldialect "jmp
>>> {{.*}}__MSASMLABEL_.${:uid}__label\0A\09{{.*}}__MSASMLABEL_.${:uid}__label:",
>>> "~{dirflag},~{fpsr},~{flags}"()
>>>  }
>>>
>>>  void label3() {
>>> @@ -613,7 +613,7 @@ void label3() {
>>>  mov eax, label
>>>}
>>>// CHECK-LABEL: define void @label3
>>> -  // CHECK: call void asm 

Re: r288093 - Use ${:uid} to generate unique MS asm labels, not {:uid}

2016-12-06 Thread Reid Kleckner via cfe-commits
Comments in r288868. It implements GCC's %= inline asm feature, and we're
just using it from MS-style inline asm to avoid duplicate labels clashing.

2016-12-01 0:37 GMT-08:00 Sean Silva :

> what is this ${:uid} thing? Could the comment
> in Sema::GetOrCreateMSAsmLabel explain it?
>
> -- Sean Silva
>
> On Mon, Nov 28, 2016 at 4:39 PM, Reid Kleckner via cfe-commits <
> cfe-commits@lists.llvm.org> wrote:
>
>> Author: rnk
>> Date: Mon Nov 28 18:39:37 2016
>> New Revision: 288093
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=288093=rev
>> Log:
>> Use ${:uid} to generate unique MS asm labels, not {:uid}
>>
>> Modified:
>> cfe/trunk/lib/Sema/SemaStmtAsm.cpp
>> cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c
>> cfe/trunk/test/CodeGen/ms-inline-asm.c
>> cfe/trunk/test/CodeGen/ms-inline-asm.cpp
>>
>> Modified: cfe/trunk/lib/Sema/SemaStmtAsm.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaS
>> tmtAsm.cpp?rev=288093=288092=288093=diff
>> 
>> ==
>> --- cfe/trunk/lib/Sema/SemaStmtAsm.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaStmtAsm.cpp Mon Nov 28 18:39:37 2016
>> @@ -753,7 +753,7 @@ LabelDecl *Sema::GetOrCreateMSAsmLabel(S
>>  // Create an internal name for the label.  The name should not be a
>> valid mangled
>>  // name, and should be unique.  We use a dot to make the name an
>> invalid mangled
>>  // name.
>> -OS << "__MSASMLABEL_.{:uid}__";
>> +OS << "__MSASMLABEL_.${:uid}__";
>>  for (char C : ExternalLabelName) {
>>OS << C;
>>// We escape '$' in asm strings by replacing it with "$$"
>>
>> Modified: cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/
>> mozilla-ms-inline-asm.c?rev=288093=288092=288093=diff
>> 
>> ==
>> --- cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c (original)
>> +++ cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c Mon Nov 28 18:39:37
>> 2016
>> @@ -20,7 +20,7 @@ void invoke(void* that, unsigned methodI
>>  // CHECK: call void asm sideeffect inteldialect
>>  // CHECK: mov edx,dword ptr $1
>>  // CHECK: test edx,edx
>> -// CHECK: jz {{[^_]*}}__MSASMLABEL_.{:uid}__noparams
>> +// CHECK: jz {{[^_]*}}__MSASMLABEL_.${:uid}__noparams
>>  // ^ Can't use {{.*}} here because the matching is greedy.
>>  // CHECK: mov eax,edx
>>  // CHECK: shl eax,$$3
>> @@ -28,7 +28,7 @@ void invoke(void* that, unsigned methodI
>>  // CHECK: mov ecx,esp
>>  // CHECK: push dword ptr $0
>>  // CHECK: call dword ptr $2
>> -// CHECK: {{.*}}__MSASMLABEL_.{:uid}__noparams:
>> +// CHECK: {{.*}}__MSASMLABEL_.${:uid}__noparams:
>>  // CHECK: mov ecx,dword ptr $3
>>  // CHECK: push ecx
>>  // CHECK: mov edx,[ecx]
>>
>> Modified: cfe/trunk/test/CodeGen/ms-inline-asm.c
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/
>> ms-inline-asm.c?rev=288093=288092=288093=diff
>> 
>> ==
>> --- cfe/trunk/test/CodeGen/ms-inline-asm.c (original)
>> +++ cfe/trunk/test/CodeGen/ms-inline-asm.c Mon Nov 28 18:39:37 2016
>> @@ -249,7 +249,7 @@ void t23() {
>>the_label:
>>}
>>  // CHECK: t23
>> -// CHECK: call void asm sideeffect inteldialect
>> "{{.*}}__MSASMLABEL_.{:uid}__the_label:", "~{dirflag},~{fpsr},~{flags}"()
>> +// CHECK: call void asm sideeffect inteldialect
>> "{{.*}}__MSASMLABEL_.${:uid}__the_label:", "~{dirflag},~{fpsr},~{flags}"(
>> )
>>  }
>>
>>  void t24_helper(void) {}
>> @@ -595,7 +595,7 @@ void label1() {
>>  jmp label
>>}
>>// CHECK-LABEL: define void @label1()
>> -  // CHECK: call void asm sideeffect inteldialect
>> "{{.*}}__MSASMLABEL_.{:uid}__label:\0A\09jmp
>> {{.*}}__MSASMLABEL_.{:uid}__label", "~{dirflag},~{fpsr},~{flags}"()
>> [[ATTR1:#[0-9]+]]
>> +  // CHECK: call void asm sideeffect inteldialect
>> "{{.*}}__MSASMLABEL_.${:uid}__label:\0A\09jmp
>> {{.*}}__MSASMLABEL_.${:uid}__label", "~{dirflag},~{fpsr},~{flags}"()
>> [[ATTR1:#[0-9]+]]
>>  }
>>
>>  void label2() {
>> @@ -604,7 +604,7 @@ void label2() {
>>  label:
>>}
>>// CHECK-LABEL: define void @label2
>> -  // CHECK: call void asm sideeffect inteldialect "jmp
>> {{.*}}__MSASMLABEL_.{:uid}__label\0A\09{{.*}}__MSASMLABEL_.{:uid}__label:",
>> "~{dirflag},~{fpsr},~{flags}"()
>> +  // CHECK: call void asm sideeffect inteldialect "jmp
>> {{.*}}__MSASMLABEL_.${:uid}__label\0A\09{{.*}}__MSASMLABEL_.${:uid}__label:",
>> "~{dirflag},~{fpsr},~{flags}"()
>>  }
>>
>>  void label3() {
>> @@ -613,7 +613,7 @@ void label3() {
>>  mov eax, label
>>}
>>// CHECK-LABEL: define void @label3
>> -  // CHECK: call void asm sideeffect inteldialect
>> "{{.*}}__MSASMLABEL_.{:uid}__label:\0A\09mov eax,
>> {{.*}}__MSASMLABEL_.{:uid}__label", "~{eax},~{dirflag},~{fpsr},~{f
>> lags}"()
>> +  // CHECK: call void asm sideeffect 

Re: r288093 - Use ${:uid} to generate unique MS asm labels, not {:uid}

2016-12-01 Thread Sean Silva via cfe-commits
what is this ${:uid} thing? Could the comment
in Sema::GetOrCreateMSAsmLabel explain it?

-- Sean Silva

On Mon, Nov 28, 2016 at 4:39 PM, Reid Kleckner via cfe-commits <
cfe-commits@lists.llvm.org> wrote:

> Author: rnk
> Date: Mon Nov 28 18:39:37 2016
> New Revision: 288093
>
> URL: http://llvm.org/viewvc/llvm-project?rev=288093=rev
> Log:
> Use ${:uid} to generate unique MS asm labels, not {:uid}
>
> Modified:
> cfe/trunk/lib/Sema/SemaStmtAsm.cpp
> cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c
> cfe/trunk/test/CodeGen/ms-inline-asm.c
> cfe/trunk/test/CodeGen/ms-inline-asm.cpp
>
> Modified: cfe/trunk/lib/Sema/SemaStmtAsm.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/
> SemaStmtAsm.cpp?rev=288093=288092=288093=diff
> 
> ==
> --- cfe/trunk/lib/Sema/SemaStmtAsm.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaStmtAsm.cpp Mon Nov 28 18:39:37 2016
> @@ -753,7 +753,7 @@ LabelDecl *Sema::GetOrCreateMSAsmLabel(S
>  // Create an internal name for the label.  The name should not be a
> valid mangled
>  // name, and should be unique.  We use a dot to make the name an
> invalid mangled
>  // name.
> -OS << "__MSASMLABEL_.{:uid}__";
> +OS << "__MSASMLABEL_.${:uid}__";
>  for (char C : ExternalLabelName) {
>OS << C;
>// We escape '$' in asm strings by replacing it with "$$"
>
> Modified: cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/
> CodeGen/mozilla-ms-inline-asm.c?rev=288093=288092=288093=diff
> 
> ==
> --- cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c (original)
> +++ cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c Mon Nov 28 18:39:37
> 2016
> @@ -20,7 +20,7 @@ void invoke(void* that, unsigned methodI
>  // CHECK: call void asm sideeffect inteldialect
>  // CHECK: mov edx,dword ptr $1
>  // CHECK: test edx,edx
> -// CHECK: jz {{[^_]*}}__MSASMLABEL_.{:uid}__noparams
> +// CHECK: jz {{[^_]*}}__MSASMLABEL_.${:uid}__noparams
>  // ^ Can't use {{.*}} here because the matching is greedy.
>  // CHECK: mov eax,edx
>  // CHECK: shl eax,$$3
> @@ -28,7 +28,7 @@ void invoke(void* that, unsigned methodI
>  // CHECK: mov ecx,esp
>  // CHECK: push dword ptr $0
>  // CHECK: call dword ptr $2
> -// CHECK: {{.*}}__MSASMLABEL_.{:uid}__noparams:
> +// CHECK: {{.*}}__MSASMLABEL_.${:uid}__noparams:
>  // CHECK: mov ecx,dword ptr $3
>  // CHECK: push ecx
>  // CHECK: mov edx,[ecx]
>
> Modified: cfe/trunk/test/CodeGen/ms-inline-asm.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/
> CodeGen/ms-inline-asm.c?rev=288093=288092=288093=diff
> 
> ==
> --- cfe/trunk/test/CodeGen/ms-inline-asm.c (original)
> +++ cfe/trunk/test/CodeGen/ms-inline-asm.c Mon Nov 28 18:39:37 2016
> @@ -249,7 +249,7 @@ void t23() {
>the_label:
>}
>  // CHECK: t23
> -// CHECK: call void asm sideeffect inteldialect
> "{{.*}}__MSASMLABEL_.{:uid}__the_label:", "~{dirflag},~{fpsr},~{flags}"()
> +// CHECK: call void asm sideeffect inteldialect
> "{{.*}}__MSASMLABEL_.${:uid}__the_label:", "~{dirflag},~{fpsr},~{flags}"()
>  }
>
>  void t24_helper(void) {}
> @@ -595,7 +595,7 @@ void label1() {
>  jmp label
>}
>// CHECK-LABEL: define void @label1()
> -  // CHECK: call void asm sideeffect inteldialect
> "{{.*}}__MSASMLABEL_.{:uid}__label:\0A\09jmp 
> {{.*}}__MSASMLABEL_.{:uid}__label",
> "~{dirflag},~{fpsr},~{flags}"() [[ATTR1:#[0-9]+]]
> +  // CHECK: call void asm sideeffect inteldialect
> "{{.*}}__MSASMLABEL_.${:uid}__label:\0A\09jmp
> {{.*}}__MSASMLABEL_.${:uid}__label", "~{dirflag},~{fpsr},~{flags}"()
> [[ATTR1:#[0-9]+]]
>  }
>
>  void label2() {
> @@ -604,7 +604,7 @@ void label2() {
>  label:
>}
>// CHECK-LABEL: define void @label2
> -  // CHECK: call void asm sideeffect inteldialect "jmp
> {{.*}}__MSASMLABEL_.{:uid}__label\0A\09{{.*}}__MSASMLABEL_.{:uid}__label:",
> "~{dirflag},~{fpsr},~{flags}"()
> +  // CHECK: call void asm sideeffect inteldialect "jmp
> {{.*}}__MSASMLABEL_.${:uid}__label\0A\09{{.*}}__MSASMLABEL_.${:uid}__label:",
> "~{dirflag},~{fpsr},~{flags}"()
>  }
>
>  void label3() {
> @@ -613,7 +613,7 @@ void label3() {
>  mov eax, label
>}
>// CHECK-LABEL: define void @label3
> -  // CHECK: call void asm sideeffect inteldialect
> "{{.*}}__MSASMLABEL_.{:uid}__label:\0A\09mov eax,
> {{.*}}__MSASMLABEL_.{:uid}__label", "~{eax},~{dirflag},~{fpsr},~{flags}"()
> +  // CHECK: call void asm sideeffect inteldialect
> "{{.*}}__MSASMLABEL_.${:uid}__label:\0A\09mov eax,
> {{.*}}__MSASMLABEL_.${:uid}__label", "~{eax},~{dirflag},~{fpsr},~{
> flags}"()
>  }
>
>  void label4() {
> @@ -622,7 +622,7 @@ void label4() {
>  mov eax, [label]
>}
>// CHECK-LABEL: define void @label4
> -  // CHECK: call void asm sideeffect inteldialect
> 

r288093 - Use ${:uid} to generate unique MS asm labels, not {:uid}

2016-11-28 Thread Reid Kleckner via cfe-commits
Author: rnk
Date: Mon Nov 28 18:39:37 2016
New Revision: 288093

URL: http://llvm.org/viewvc/llvm-project?rev=288093=rev
Log:
Use ${:uid} to generate unique MS asm labels, not {:uid}

Modified:
cfe/trunk/lib/Sema/SemaStmtAsm.cpp
cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c
cfe/trunk/test/CodeGen/ms-inline-asm.c
cfe/trunk/test/CodeGen/ms-inline-asm.cpp

Modified: cfe/trunk/lib/Sema/SemaStmtAsm.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaStmtAsm.cpp?rev=288093=288092=288093=diff
==
--- cfe/trunk/lib/Sema/SemaStmtAsm.cpp (original)
+++ cfe/trunk/lib/Sema/SemaStmtAsm.cpp Mon Nov 28 18:39:37 2016
@@ -753,7 +753,7 @@ LabelDecl *Sema::GetOrCreateMSAsmLabel(S
 // Create an internal name for the label.  The name should not be a valid 
mangled
 // name, and should be unique.  We use a dot to make the name an invalid 
mangled
 // name.
-OS << "__MSASMLABEL_.{:uid}__";
+OS << "__MSASMLABEL_.${:uid}__";
 for (char C : ExternalLabelName) {
   OS << C;
   // We escape '$' in asm strings by replacing it with "$$"

Modified: cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c?rev=288093=288092=288093=diff
==
--- cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c (original)
+++ cfe/trunk/test/CodeGen/mozilla-ms-inline-asm.c Mon Nov 28 18:39:37 2016
@@ -20,7 +20,7 @@ void invoke(void* that, unsigned methodI
 // CHECK: call void asm sideeffect inteldialect
 // CHECK: mov edx,dword ptr $1
 // CHECK: test edx,edx
-// CHECK: jz {{[^_]*}}__MSASMLABEL_.{:uid}__noparams
+// CHECK: jz {{[^_]*}}__MSASMLABEL_.${:uid}__noparams
 // ^ Can't use {{.*}} here because the matching is greedy.
 // CHECK: mov eax,edx
 // CHECK: shl eax,$$3
@@ -28,7 +28,7 @@ void invoke(void* that, unsigned methodI
 // CHECK: mov ecx,esp
 // CHECK: push dword ptr $0
 // CHECK: call dword ptr $2
-// CHECK: {{.*}}__MSASMLABEL_.{:uid}__noparams:
+// CHECK: {{.*}}__MSASMLABEL_.${:uid}__noparams:
 // CHECK: mov ecx,dword ptr $3
 // CHECK: push ecx
 // CHECK: mov edx,[ecx]

Modified: cfe/trunk/test/CodeGen/ms-inline-asm.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/ms-inline-asm.c?rev=288093=288092=288093=diff
==
--- cfe/trunk/test/CodeGen/ms-inline-asm.c (original)
+++ cfe/trunk/test/CodeGen/ms-inline-asm.c Mon Nov 28 18:39:37 2016
@@ -249,7 +249,7 @@ void t23() {
   the_label:
   }
 // CHECK: t23
-// CHECK: call void asm sideeffect inteldialect 
"{{.*}}__MSASMLABEL_.{:uid}__the_label:", "~{dirflag},~{fpsr},~{flags}"()
+// CHECK: call void asm sideeffect inteldialect 
"{{.*}}__MSASMLABEL_.${:uid}__the_label:", "~{dirflag},~{fpsr},~{flags}"()
 }
 
 void t24_helper(void) {}
@@ -595,7 +595,7 @@ void label1() {
 jmp label
   }
   // CHECK-LABEL: define void @label1()
-  // CHECK: call void asm sideeffect inteldialect 
"{{.*}}__MSASMLABEL_.{:uid}__label:\0A\09jmp 
{{.*}}__MSASMLABEL_.{:uid}__label", "~{dirflag},~{fpsr},~{flags}"() 
[[ATTR1:#[0-9]+]]
+  // CHECK: call void asm sideeffect inteldialect 
"{{.*}}__MSASMLABEL_.${:uid}__label:\0A\09jmp 
{{.*}}__MSASMLABEL_.${:uid}__label", "~{dirflag},~{fpsr},~{flags}"() 
[[ATTR1:#[0-9]+]]
 }
 
 void label2() {
@@ -604,7 +604,7 @@ void label2() {
 label:
   }
   // CHECK-LABEL: define void @label2
-  // CHECK: call void asm sideeffect inteldialect "jmp 
{{.*}}__MSASMLABEL_.{:uid}__label\0A\09{{.*}}__MSASMLABEL_.{:uid}__label:", 
"~{dirflag},~{fpsr},~{flags}"()
+  // CHECK: call void asm sideeffect inteldialect "jmp 
{{.*}}__MSASMLABEL_.${:uid}__label\0A\09{{.*}}__MSASMLABEL_.${:uid}__label:", 
"~{dirflag},~{fpsr},~{flags}"()
 }
 
 void label3() {
@@ -613,7 +613,7 @@ void label3() {
 mov eax, label
   }
   // CHECK-LABEL: define void @label3
-  // CHECK: call void asm sideeffect inteldialect 
"{{.*}}__MSASMLABEL_.{:uid}__label:\0A\09mov eax, 
{{.*}}__MSASMLABEL_.{:uid}__label", "~{eax},~{dirflag},~{fpsr},~{flags}"()
+  // CHECK: call void asm sideeffect inteldialect 
"{{.*}}__MSASMLABEL_.${:uid}__label:\0A\09mov eax, 
{{.*}}__MSASMLABEL_.${:uid}__label", "~{eax},~{dirflag},~{fpsr},~{flags}"()
 }
 
 void label4() {
@@ -622,7 +622,7 @@ void label4() {
 mov eax, [label]
   }
   // CHECK-LABEL: define void @label4
-  // CHECK: call void asm sideeffect inteldialect 
"{{.*}}__MSASMLABEL_.{:uid}__label:\0A\09mov eax, 
{{.*}}__MSASMLABEL_.{:uid}__label", "~{eax},~{dirflag},~{fpsr},~{flags}"()
+  // CHECK: call void asm sideeffect inteldialect 
"{{.*}}__MSASMLABEL_.${:uid}__label:\0A\09mov eax, 
{{.*}}__MSASMLABEL_.${:uid}__label", "~{eax},~{dirflag},~{fpsr},~{flags}"()
 }
 
 void label5() {
@@ -631,7 +631,7 @@ void label5() {
 dollar_label$:
   }
   // CHECK-LABEL: define void @label5
-  // CHECK: call void