brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 833db0e Raw
58 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-linux -mcpu=penryn |  FileCheck %s3 4define void @t0(ptr %dst, <2 x i64> %src1, <2 x i64> %src2) nounwind readonly {5; CHECK-LABEL: t0:6; CHECK:       # %bb.0:7; CHECK-NEXT:    pxor %xmm2, %xmm28; CHECK-NEXT:    pcmpeqq %xmm2, %xmm09; CHECK-NEXT:    pcmpeqq %xmm2, %xmm110; CHECK-NEXT:    por %xmm0, %xmm111; CHECK-NEXT:    pcmpeqd %xmm0, %xmm012; CHECK-NEXT:    pxor %xmm1, %xmm013; CHECK-NEXT:    movdqa %xmm0, (%rdi)14; CHECK-NEXT:    retq15  %cmp1 = icmp ne <2 x i64> %src1, zeroinitializer16  %cmp2 = icmp ne <2 x i64> %src2, zeroinitializer17  %t1 = and <2 x i1> %cmp1, %cmp218  %t2 = sext <2 x i1> %t1 to <2 x i64>19  store <2 x i64> %t2, ptr %dst20  ret void21}22 23define void @t2(ptr %dst, <3 x i64> %src1, <3 x i64> %src2) nounwind readonly {24; CHECK-LABEL: t2:25; CHECK:       # %bb.0:26; CHECK-NEXT:    movq %r9, %xmm027; CHECK-NEXT:    movq %r8, %xmm128; CHECK-NEXT:    punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]29; CHECK-NEXT:    movq %rdx, %xmm030; CHECK-NEXT:    movq %rsi, %xmm231; CHECK-NEXT:    punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm0[0]32; CHECK-NEXT:    movq %rcx, %xmm033; CHECK-NEXT:    movq {{.*#+}} xmm3 = mem[0],zero34; CHECK-NEXT:    pxor %xmm4, %xmm435; CHECK-NEXT:    pcmpeqq %xmm4, %xmm236; CHECK-NEXT:    pcmpeqq %xmm4, %xmm037; CHECK-NEXT:    pcmpeqd %xmm5, %xmm538; CHECK-NEXT:    pcmpeqq %xmm4, %xmm139; CHECK-NEXT:    por %xmm2, %xmm140; CHECK-NEXT:    pcmpeqq %xmm4, %xmm341; CHECK-NEXT:    por %xmm0, %xmm342; CHECK-NEXT:    packssdw %xmm3, %xmm143; CHECK-NEXT:    pxor %xmm5, %xmm144; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[2,2,2,2]45; CHECK-NEXT:    pslld $31, %xmm046; CHECK-NEXT:    psrad $31, %xmm047; CHECK-NEXT:    pmovsxdq %xmm1, %xmm148; CHECK-NEXT:    movdqa %xmm1, (%rdi)49; CHECK-NEXT:    movq %xmm0, 16(%rdi)50; CHECK-NEXT:    retq51  %cmp1 = icmp ne <3 x i64> %src1, zeroinitializer52  %cmp2 = icmp ne <3 x i64> %src2, zeroinitializer53  %t1 = and <3 x i1> %cmp1, %cmp254  %t2 = sext <3 x i1> %t1 to <3 x i64>55  store <3 x i64> %t2, ptr %dst56  ret void57}58