alloca.ll 735 B

123456789101112131415161718192021222324252627282930313233
  1. ; RUN: opt -mergefunc -S < %s | FileCheck %s
  2. ;; Make sure that two different sized allocas are not treated as equal.
  3. target datalayout = "e-m:w-p:32:32-i64:64-f80:32-n8:16:32-S32"
  4. %kv1 = type { i32, i32 }
  5. %kv2 = type { i8 }
  6. define void @a(i8 *%f) {
  7. %v = alloca %kv1, align 8
  8. %f_2 = bitcast i8* %f to void (%kv1 *)*
  9. call void %f_2(%kv1 * %v)
  10. call void %f_2(%kv1 * %v)
  11. call void %f_2(%kv1 * %v)
  12. call void %f_2(%kv1 * %v)
  13. ret void
  14. }
  15. ; CHECK-LABEL: define void @b
  16. ; CHECK-NOT: call @a
  17. ; CHECK: ret
  18. define void @b(i8 *%f) {
  19. %v = alloca %kv2, align 8
  20. %f_2 = bitcast i8* %f to void (%kv2 *)*
  21. call void %f_2(%kv2 * %v)
  22. call void %f_2(%kv2 * %v)
  23. call void %f_2(%kv2 * %v)
  24. call void %f_2(%kv2 * %v)
  25. ret void
  26. }