vec_extract_var_elt.ll 744 B

1234567891011121314151617181920212223242526
  1. ; RUN: opt < %s -instcombine -S | FileCheck %s
  2. define void @test (float %b, <8 x float> * %p) {
  3. ; CHECK: extractelement
  4. ; CHECK: fptosi
  5. %1 = load <8 x float> , <8 x float> * %p
  6. %2 = bitcast <8 x float> %1 to <8 x i32>
  7. %3 = bitcast <8 x i32> %2 to <8 x float>
  8. %a = fptosi <8 x float> %3 to <8 x i32>
  9. %4 = fptosi float %b to i32
  10. %5 = add i32 %4, -2
  11. %6 = extractelement <8 x i32> %a, i32 %5
  12. %7 = insertelement <8 x i32> undef, i32 %6, i32 7
  13. %8 = sitofp <8 x i32> %7 to <8 x float>
  14. store <8 x float> %8, <8 x float>* %p
  15. ret void
  16. }
  17. ; PR18600
  18. define i32 @test2(i32 %i) {
  19. %e = extractelement <4 x i32> bitcast (<2 x i64> <i64 1, i64 2> to <4 x i32>), i32 %i
  20. ret i32 %e
  21. ; CHECK-LABEL: @test2
  22. ; CHECK: extractelement
  23. }