Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/CodeGen/X86/load-local-v3i1.ll
Show First 20 Lines • Show All 92 Lines • ▼ Show 20 Lines | |||||
; CHECK-NEXT: pushq %rbp | ; CHECK-NEXT: pushq %rbp | ||||
; CHECK-NEXT: pushq %r15 | ; CHECK-NEXT: pushq %r15 | ||||
; CHECK-NEXT: pushq %r14 | ; CHECK-NEXT: pushq %r14 | ||||
; CHECK-NEXT: pushq %rbx | ; CHECK-NEXT: pushq %rbx | ||||
; CHECK-NEXT: pushq %rax | ; CHECK-NEXT: pushq %rax | ||||
; CHECK-NEXT: movq %rdi, %r14 | ; CHECK-NEXT: movq %rdi, %r14 | ||||
; CHECK-NEXT: movb (%rdx), %al | ; CHECK-NEXT: movb (%rdx), %al | ||||
; CHECK-NEXT: movl %eax, %ecx | ; CHECK-NEXT: movl %eax, %ecx | ||||
; CHECK-NEXT: shrb $2, %cl | ; CHECK-NEXT: shrb %cl | ||||
; CHECK-NEXT: movzbl %al, %r15d | ; CHECK-NEXT: andb $1, %cl | ||||
; CHECK-NEXT: shrb %al | ; CHECK-NEXT: movl %eax, %edx | ||||
; CHECK-NEXT: movzbl %al, %ebx | ; CHECK-NEXT: shrb $2, %dl | ||||
; CHECK-NEXT: movzbl %cl, %ebp | ; CHECK-NEXT: andb $1, %al | ||||
; CHECK-NEXT: movzbl %al, %ebp | |||||
; CHECK-NEXT: movzbl %dl, %r15d | |||||
; CHECK-NEXT: movzbl %cl, %ebx | |||||
; CHECK-NEXT: movq %rsi, %rdi | ; CHECK-NEXT: movq %rsi, %rdi | ||||
; CHECK-NEXT: movl %r15d, %esi | ; CHECK-NEXT: movl %ebp, %esi | ||||
; CHECK-NEXT: movl %ebx, %edx | ; CHECK-NEXT: movl %ebx, %edx | ||||
; CHECK-NEXT: movl %ebp, %ecx | ; CHECK-NEXT: movl %r15d, %ecx | ||||
; CHECK-NEXT: callq masked_load_v3 | ; CHECK-NEXT: callq masked_load_v3 | ||||
; CHECK-NEXT: movq %r14, %rdi | ; CHECK-NEXT: movq %r14, %rdi | ||||
; CHECK-NEXT: movl %r15d, %esi | ; CHECK-NEXT: movl %ebp, %esi | ||||
; CHECK-NEXT: movl %ebx, %edx | ; CHECK-NEXT: movl %ebx, %edx | ||||
; CHECK-NEXT: movl %ebp, %ecx | ; CHECK-NEXT: movl %r15d, %ecx | ||||
; CHECK-NEXT: callq masked_store4_v3 | ; CHECK-NEXT: callq masked_store4_v3 | ||||
; CHECK-NEXT: addq $8, %rsp | ; CHECK-NEXT: addq $8, %rsp | ||||
; CHECK-NEXT: popq %rbx | ; CHECK-NEXT: popq %rbx | ||||
; CHECK-NEXT: popq %r14 | ; CHECK-NEXT: popq %r14 | ||||
; CHECK-NEXT: popq %r15 | ; CHECK-NEXT: popq %r15 | ||||
; CHECK-NEXT: popq %rbp | ; CHECK-NEXT: popq %rbp | ||||
; CHECK-NEXT: retq | ; CHECK-NEXT: retq | ||||
%predicate = load <3 x i1>, <3 x i1>* %predicate_ptr | %predicate = load <3 x i1>, <3 x i1>* %predicate_ptr | ||||
%load1 = call <3 x i32> @masked_load_v3(i32 addrspace(1)* %in, <3 x i1> %predicate) | %load1 = call <3 x i32> @masked_load_v3(i32 addrspace(1)* %in, <3 x i1> %predicate) | ||||
call void @masked_store4_v3(<3 x i32> %load1, i32 addrspace(1)* %out, <3 x i1> %predicate) | call void @masked_store4_v3(<3 x i32> %load1, i32 addrspace(1)* %out, <3 x i1> %predicate) | ||||
ret void | ret void | ||||
} | } |