2
0

shuffle.ll 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. ; RUN: opt < %s -cost-model -analyze -mtriple=thumbv7-apple-ios6.0.0 -mcpu=swift | FileCheck %s
  2. target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
  3. target triple = "thumbv7-apple-ios6.0.0"
  4. ; CHECK: shuffle
  5. define void @shuffle() {
  6. ;; Reverse shuffles should be lowered to vrev and possibly a vext (for
  7. ;; quadwords)
  8. ; Vector values
  9. ; CHECK: cost of 1 {{.*}} shuffle
  10. %v7 = shufflevector <2 x i8> undef, <2 x i8>undef, <2 x i32> <i32 1, i32 0>
  11. ; CHECK: cost of 1 {{.*}} shuffle
  12. %v8 = shufflevector <4 x i8> undef, <4 x i8>undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  13. ; CHECK: cost of 1 {{.*}} shuffle
  14. %v9 = shufflevector <8 x i8> undef, <8 x i8>undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
  15. ; CHECK: cost of 2 {{.*}} shuffle
  16. %v10 = shufflevector <16 x i8> undef, <16 x i8>undef, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
  17. ; CHECK: cost of 1 {{.*}} shuffle
  18. %v11 = shufflevector <2 x i16> undef, <2 x i16>undef, <2 x i32> <i32 1, i32 0>
  19. ; CHECK: cost of 1 {{.*}} shuffle
  20. %v12 = shufflevector <4 x i16> undef, <4 x i16>undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  21. ; CHECK: cost of 2 {{.*}} shuffle
  22. %v13 = shufflevector <8 x i16> undef, <8 x i16>undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
  23. ; CHECK: cost of 1 {{.*}} shuffle
  24. %v14 = shufflevector <2 x i32> undef, <2 x i32>undef, <2 x i32> <i32 1, i32 0>
  25. ; CHECK: cost of 2 {{.*}} shuffle
  26. %v15 = shufflevector <4 x i32> undef, <4 x i32>undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  27. ; CHECK: cost of 1 {{.*}} shuffle
  28. %v16 = shufflevector <2 x float> undef, <2 x float>undef, <2 x i32> <i32 1, i32 0>
  29. ; CHECK: cost of 2 {{.*}} shuffle
  30. %v17 = shufflevector <4 x float> undef, <4 x float>undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  31. ret void
  32. }