ExtractCast.ll 599 B

123456789101112131415161718192021222324252627
  1. ; RUN: opt < %s -instcombine -S -o - | FileCheck %s
  2. ; CHECK-LABEL: @a(
  3. define i32 @a(<4 x i64> %I) {
  4. entry:
  5. ; CHECK-NOT: trunc <4 x i64>
  6. %J = trunc <4 x i64> %I to <4 x i32>
  7. %K = extractelement <4 x i32> %J, i32 3
  8. ; CHECK: extractelement <4 x i64>
  9. ; CHECK: trunc i64
  10. ; CHECK: ret
  11. ret i32 %K
  12. }
  13. ; CHECK-LABEL: @b(
  14. define i32 @b(<4 x float> %I) {
  15. entry:
  16. ; CHECK-NOT: fptosi <4 x float>
  17. %J = fptosi <4 x float> %I to <4 x i32>
  18. %K = extractelement <4 x i32> %J, i32 3
  19. ; CHECK: extractelement <4 x float>
  20. ; CHECK: fptosi float
  21. ; CHECK: ret
  22. ret i32 %K
  23. }