MIR Serialization: Serialize unnamed local IR values in memory operands.
[oota-llvm.git] / test / CodeGen / MIR / X86 / memory-operands.mir
index fabea5ebcbfa237d1937b83a00eeadb1aad36439..ba5bcec820e1307fad2f495b6af864051eabf37e 100644 (file)
     ret void
   }
 
+  define void @test3(i32*) {
+  entry3:
+    %1 = alloca i32
+    %b = load i32, i32* %0
+    %c = add i32 %b, 1
+    store i32 %c, i32* %1
+    ret void
+  }
+
   define i32 @volatile_inc(i32* %x) {
   entry:
     %0 = load volatile i32, i32* %x
@@ -185,6 +194,27 @@ body: |
     RETQ
 ...
 ---
+name:            test3
+tracksRegLiveness: true
+liveins:
+  - { reg: '%rdi' }
+frameInfo:
+  maxAlignment:    4
+stack:
+  - { id: 0, offset: -12, size: 4, alignment: 4 }
+body: |
+  bb.0.entry3:
+    liveins: %rdi
+  ; Verify that the unnamed local values can be serialized.
+  ; CHECK-LABEL: name: test3
+  ; CHECK: %eax = MOV32rm killed %rdi, 1, _, 0, _ :: (load 4 from %ir.0)
+  ; CHECK: MOV32mr %rsp, 1, _, -4, _, killed %eax :: (store 4 into %ir.1)
+    %eax = MOV32rm killed %rdi, 1, _, 0, _ :: (load 4 from %ir.0)
+    %eax = INC32r killed %eax, implicit-def dead %eflags
+    MOV32mr %rsp, 1, _, -4, _, killed %eax :: (store 4 into %ir.1)
+    RETQ
+...
+---
 name:            volatile_inc
 tracksRegLiveness: true
 liveins: