http://llvm.org/bugs/show_bug.cgi?id=21717

            Bug ID: 21717
           Summary: Scalarized v32i8 shuffle for AVX2
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
    Classification: Unclassified

enkidu: ~/tmp $ cat t.ll
; ModuleID = 't.c'
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.10.0"

; Function Attrs: nounwind optsize readonly ssp uwtable
define <16 x i8> @foo(<16 x i16>* byval nocapture readonly align 32) #0 {
entry:
  %1 = bitcast <16 x i16>* %0 to <32 x i8>*
  %x1 = load <32 x i8>* %1, align 32
  %2 = shufflevector <32 x i8> %x1, <32 x i8> undef, <16 x i32> <i32 0, i32 2,
i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22,
i32 24, i32 26, i32 28, i32 30>
  ret <16 x i8> %2
}

attributes #0 = { nounwind optsize readonly ssp uwtable
"less-precise-fpmad"="false" "no-frame-pointer-elim"="true"
"no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false"
"no-nans-fp-math"="false" "stack-protector-buffer-size"="8"
"unsafe-fp-math"="false" "use-soft-float"="false" }

!llvm.module.flags = !{!0}
!llvm.ident = !{!1}

!0 = metadata !{i32 1, metadata !"PIC Level", i32 2}
!1 = metadata !{metadata !"clang version 3.6.0 (trunk 222534) (llvm/trunk
222547)"}


For AVX2, this gets scalarized. For SSE it generates a pshufb pair. Something
is rotten in Denmark.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to