Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/test/CodeGen/X86/widen_arith-3.ll
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | ||||
; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+sse4.2 -post-RA-scheduler=true | FileCheck %s | ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+sse4.2 -post-RA-scheduler=true | FileCheck %s | ||||
; Widen a v3i16 to v8i16 to do a vector add | ; Widen a v3i16 to v8i16 to do a vector add | ||||
@.str = internal constant [4 x i8] c"%d \00" | @.str = internal constant [4 x i8] c"%d \00" | ||||
@.str1 = internal constant [2 x i8] c"\0A\00" | @.str1 = internal constant [2 x i8] c"\0A\00" | ||||
define void @update(<3 x i16>* %dst, <3 x i16>* %src, i32 %n) nounwind { | define void @update(<3 x i16>* %dst, <3 x i16>* %src, i32 %n) nounwind { | ||||
; CHECK-LABEL: update: | ; CHECK-LABEL: update: | ||||
; CHECK: # %bb.0: # %entry | ; CHECK: # %bb.0: # %entry | ||||
; CHECK-NEXT: pushl %ebp | ; CHECK-NEXT: pushl %ebp | ||||
; CHECK-NEXT: movl %esp, %ebp | ; CHECK-NEXT: movl %esp, %ebp | ||||
; CHECK-NEXT: andl $-8, %esp | ; CHECK-NEXT: andl $-8, %esp | ||||
; CHECK-NEXT: subl $32, %esp | ; CHECK-NEXT: subl $32, %esp | ||||
; CHECK-NEXT: movl {{\.LCPI.*}}, %eax | |||||
; CHECK-NEXT: movdqa {{.*#+}} xmm1 = [0,1,4,5,8,9,12,13,8,9,12,13,12,13,14,15] | ; CHECK-NEXT: movdqa {{.*#+}} xmm1 = [0,1,4,5,8,9,12,13,8,9,12,13,12,13,14,15] | ||||
; CHECK-NEXT: pcmpeqd %xmm0, %xmm0 | ; CHECK-NEXT: pcmpeqd %xmm0, %xmm0 | ||||
; CHECK-NEXT: movw $1, {{[0-9]+}}(%esp) | ; CHECK-NEXT: movw $1, {{[0-9]+}}(%esp) | ||||
; CHECK-NEXT: movl $65537, {{[0-9]+}}(%esp) # imm = 0x10001 | |||||
; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp) | ; CHECK-NEXT: movl $0, {{[0-9]+}}(%esp) | ||||
; CHECK-NEXT: movl %eax, {{[0-9]+}}(%esp) | |||||
; CHECK-NEXT: jmp .LBB0_1 | ; CHECK-NEXT: jmp .LBB0_1 | ||||
; CHECK-NEXT: .p2align 4, 0x90 | ; CHECK-NEXT: .p2align 4, 0x90 | ||||
; CHECK-NEXT: .LBB0_2: # %forbody | ; CHECK-NEXT: .LBB0_2: # %forbody | ||||
; CHECK-NEXT: # in Loop: Header=BB0_1 Depth=1 | ; CHECK-NEXT: # in Loop: Header=BB0_1 Depth=1 | ||||
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax | ; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax | ||||
; CHECK-NEXT: movl 12(%ebp), %edx | ; CHECK-NEXT: movl 12(%ebp), %edx | ||||
; CHECK-NEXT: movl 8(%ebp), %ecx | ; CHECK-NEXT: movl 8(%ebp), %ecx | ||||
; CHECK-NEXT: pmovzxwd {{.*#+}} xmm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero | ; CHECK-NEXT: pmovzxwd {{.*#+}} xmm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero | ||||
▲ Show 20 Lines • Show All 55 Lines • Show Last 20 Lines |