================
@@ -0,0 +1,74 @@
+// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm %s -o - | FileCheck 
--check-prefixes=O0 %s
+// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -O2 %s -o - | 
FileCheck --check-prefixes=O2 %s
+
+void test_1(unsigned long flags) {
+  // O0-LABEL: @test_1
+  // O0:         call void asm sideeffect "", 
"rm,~{dirflag},~{fpsr},~{flags}"(i32 %0)
+  //
+  // O2-LABEL: @test_1
+  // O2:         call void asm sideeffect "", 
"rm,~{dirflag},~{fpsr},~{flags}"(i32 %flags)
+  asm ("" : : "rm" (flags));
+}
+
+unsigned long test_2(void) {
+  // O0-LABEL: @test_2
+  // O0:         call void asm "", "=*rm,~{dirflag},~{fpsr},~{flags}"(ptr 
elementtype(i32) %out)
+  //
+  // O2-LABEL: @test_2
+  // O2:         %0 = tail call i32 asm "", "=rm,~{dirflag},~{fpsr},~{flags}"()
+  unsigned long out;
+  asm ("" : "=rm" (out));
+  return out;
+}
+
+void test_3(unsigned long flags) {
+  // O0-LABEL: @test_3
+  // O0:         call void asm sideeffect "", 
"imr,~{dirflag},~{fpsr},~{flags}"(i32 %0)
+  //
+  // O2-LABEL: @test_3
+  // O2:         call void asm sideeffect "", 
"imr,~{dirflag},~{fpsr},~{flags}"(i32 %flags)
+  asm ("" : : "g" (flags));
+}
+
+unsigned long test_4(void) {
+  // O0-LABEL: @test_4
+  // O0:         call void asm "", "=*imr,~{dirflag},~{fpsr},~{flags}"(ptr 
elementtype(i32) %out)
+  //
+  // O2-LABEL: @test_4
+  // O2:         %0 = tail call i32 asm "", 
"=imr,~{dirflag},~{fpsr},~{flags}"()
+  unsigned long out;
+  asm ("" : "=g" (out));
+  return out;
+}
+
+void test_5(int len) {
----------------
arsenm wrote:

This is a problem with older tests, newer tests often do 

https://github.com/llvm/llvm-project/pull/195592
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to