shuffle.ll 1.7 KB

1234567891011121314151617181920212223242526272829303132
  1. ; RUN: llvm-as < %s | llvm-dis -disable-output
  2. ; RUN: verify-uselistorder < %s
  3. ; <rdar://problem/8622574>
  4. ; tests the bitcodereader can handle the case where the reader will initially
  5. ; create shuffle with a place holder mask.
  6. define <4 x float> @test(<2 x double> %d2) {
  7. entry:
  8. %call20.i = tail call <4 x float> @cmp(<2 x double> %d2,
  9. <2 x double> bitcast (
  10. <4 x float> shufflevector (
  11. <3 x float> shufflevector (
  12. <4 x float> shufflevector (
  13. <3 x float> bitcast (
  14. i96 trunc (
  15. i128 bitcast (<2 x double> bitcast (
  16. <4 x i32> <i32 0, i32 0, i32 0, i32 undef> to <2 x double>)
  17. to i128) to i96)
  18. to <3 x float>),
  19. <3 x float> undef,
  20. <4 x i32> <i32 0, i32 1, i32 2, i32 undef>),
  21. <4 x float> undef,
  22. <3 x i32> <i32 0, i32 1, i32 2>),
  23. <3 x float> undef,
  24. <4 x i32> <i32 0, i32 1, i32 2, i32 undef>)
  25. to <2 x double>))
  26. ret <4 x float> %call20.i
  27. }
  28. declare <4 x float> @cmp(<2 x double>, <2 x double>)