diff options
Diffstat (limited to 'llvm/test/CodeGen/MIR/X86')
3 files changed, 53 insertions, 2 deletions
diff --git a/llvm/test/CodeGen/MIR/X86/expected-size-integer-after-memory-operation.mir b/llvm/test/CodeGen/MIR/X86/expected-size-integer-after-memory-operation.mir index 3666c8499b8..537f25e8b06 100644 --- a/llvm/test/CodeGen/MIR/X86/expected-size-integer-after-memory-operation.mir +++ b/llvm/test/CodeGen/MIR/X86/expected-size-integer-after-memory-operation.mir @@ -17,7 +17,7 @@ liveins: body: | bb.0.entry: liveins: $rdi - ; CHECK: [[@LINE+1]]:53: expected an atomic scope, ordering or a size integer literal + ; CHECK: [[@LINE+1]]:53: expected an atomic scope, ordering or a size specification $eax = MOV32rm killed $rdi, 1, _, 0, _ :: (load from %ir.a) RETQ $eax ... diff --git a/llvm/test/CodeGen/MIR/X86/expected-size-integer-after-memory-operation2.mir b/llvm/test/CodeGen/MIR/X86/expected-size-integer-after-memory-operation2.mir new file mode 100644 index 00000000000..4a80455425d --- /dev/null +++ b/llvm/test/CodeGen/MIR/X86/expected-size-integer-after-memory-operation2.mir @@ -0,0 +1,24 @@ +# RUN: not llc -march=x86-64 -run-pass none -o /dev/null %s 2>&1 | FileCheck %s + +--- | + + define i32 @test(i32* %a) { + entry: + %b = load i32, i32* %a + ret i32 %b + } + +... +--- +name: test +tracksRegLiveness: true +liveins: + - { reg: '$rdi' } +body: | + bb.0.entry: + liveins: $rdi + ; CHECK: [[@LINE+1]]:53: expected the size integer literal or 'unknown-size' after memory operation + $eax = MOV32rm killed $rdi, 1, _, 0, _ :: (load . from %ir.a) + RETQ $eax +... + diff --git a/llvm/test/CodeGen/MIR/X86/memory-operands.mir b/llvm/test/CodeGen/MIR/X86/memory-operands.mir index 85e31c09d1c..2ac7bea2fc9 100644 --- a/llvm/test/CodeGen/MIR/X86/memory-operands.mir +++ b/llvm/test/CodeGen/MIR/X86/memory-operands.mir @@ -189,6 +189,8 @@ define void @dummy0() { ret void } define void @dummy1() { ret void } + define void @dummy2() { ret void } + define void @dummy3() { ret void } ... --- name: test @@ -532,5 +534,30 @@ body: | bb.0: $rax = MOV64rm $rsp, 1, _, 0, _ :: (load 8 from %stack.0) RETQ $rax - +... +--- +# Test parsing of unknown size in machine memory operands without alignment. +# CHECK-LABEL: name: dummy2 +# CHECK: $rax = MOV64rm $rsp, 1, $noreg, 0, $noreg :: (load unknown-size from %stack.0, align 1) +name: dummy2 +tracksRegLiveness: true +stack: + - { id: 0, size: 4, alignment: 4 } +body: | + bb.0: + $rax = MOV64rm $rsp, 1, _, 0, _ :: (load unknown-size from %stack.0) + RETQ $rax +... +--- +# Test parsing of unknown size in machine memory operands with alignment. +# CHECK-LABEL: name: dummy3 +# CHECK: $rax = MOV64rm $rsp, 1, $noreg, 0, $noreg :: (load unknown-size from %stack.0, align 4) +name: dummy3 +tracksRegLiveness: true +stack: + - { id: 0, size: 4, alignment: 4 } +body: | + bb.0: + $rax = MOV64rm $rsp, 1, _, 0, _ :: (load unknown-size from %stack.0, align 4) + RETQ $rax ... |

