diff --git a/llvm/test/CodeGen/X86/bigstructret.ll b/llvm/test/CodeGen/X86/bigstructret.ll index 3c499fae820f..6231ba3efb3f 100644 --- a/llvm/test/CodeGen/X86/bigstructret.ll +++ b/llvm/test/CodeGen/X86/bigstructret.ll @@ -1,15 +1,28 @@ -; RUN: llc < %s -march=x86 | FileCheck %s +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s --check-prefix=X86 +; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefix=X64 %0 = type { i32, i32, i32, i32 } %1 = type { i1, i1, i1, i32 } -; CHECK: ReturnBigStruct -; CHECK: movl $24601, 12(%ecx) -; CHECK: movl $48, 8(%ecx) -; CHECK: movl $24, 4(%ecx) -; CHECK: movl $12, (%ecx) - define fastcc %0 @ReturnBigStruct() nounwind readnone { +; X86-LABEL: ReturnBigStruct: +; X86: # BB#0: # %entry +; X86-NEXT: movl $24601, 12(%ecx) # imm = 0x6019 +; X86-NEXT: movl $48, 8(%ecx) +; X86-NEXT: movl $24, 4(%ecx) +; X86-NEXT: movl $12, (%ecx) +; X86-NEXT: movl %ecx, %eax +; X86-NEXT: retl +; +; X64-LABEL: ReturnBigStruct: +; X64: # BB#0: # %entry +; X64-NEXT: movabsq $105660490448944, %rax # imm = 0x601900000030 +; X64-NEXT: movq %rax, 8(%rdi) +; X64-NEXT: movabsq $103079215116, %rax # imm = 0x180000000C +; X64-NEXT: movq %rax, (%rdi) +; X64-NEXT: movq %rdi, %rax +; X64-NEXT: retq entry: %0 = insertvalue %0 zeroinitializer, i32 12, 0 %1 = insertvalue %0 %0, i32 24, 1 @@ -18,13 +31,24 @@ entry: ret %0 %3 } -; CHECK: ReturnBigStruct2 -; CHECK: movl $48, 4(%ecx) -; CHECK: movb $1, 2(%ecx) -; CHECK: movb $1, 1(%ecx) -; CHECK: movb $0, (%ecx) - define fastcc %1 @ReturnBigStruct2() nounwind readnone { +; X86-LABEL: ReturnBigStruct2: +; X86: # BB#0: # %entry +; X86-NEXT: movl $48, 4(%ecx) +; X86-NEXT: movb $1, 2(%ecx) +; X86-NEXT: movb $1, 1(%ecx) +; X86-NEXT: movb $0, (%ecx) +; X86-NEXT: movl %ecx, %eax +; X86-NEXT: retl +; +; X64-LABEL: ReturnBigStruct2: +; X64: # BB#0: # %entry +; X64-NEXT: movl $48, 4(%rdi) +; X64-NEXT: movb $1, 2(%rdi) +; X64-NEXT: movb $1, 1(%rdi) +; X64-NEXT: movb $0, (%rdi) +; X64-NEXT: movq %rdi, %rax +; X64-NEXT: retq entry: %0 = insertvalue %1 zeroinitializer, i1 false, 0 %1 = insertvalue %1 %0, i1 true, 1