vector-args.ll 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. ; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
  2. define float @foo(<2 x float> %a) {
  3. ; CHECK: .func (.param .b32 func_retval0) foo
  4. ; CHECK: .param .align 8 .b8 foo_param_0[8]
  5. ; CHECK: ld.param.v2.f32 {%f{{[0-9]+}}, %f{{[0-9]+}}}
  6. %t1 = fmul <2 x float> %a, %a
  7. %t2 = extractelement <2 x float> %t1, i32 0
  8. %t3 = extractelement <2 x float> %t1, i32 1
  9. %t4 = fadd float %t2, %t3
  10. ret float %t4
  11. }
  12. define float @bar(<4 x float> %a) {
  13. ; CHECK: .func (.param .b32 func_retval0) bar
  14. ; CHECK: .param .align 16 .b8 bar_param_0[16]
  15. ; CHECK: ld.param.v4.f32 {%f{{[0-9]+}}, %f{{[0-9]+}}, %f{{[0-9]+}}, %f{{[0-9]+}}}
  16. %t1 = fmul <4 x float> %a, %a
  17. %t2 = extractelement <4 x float> %t1, i32 0
  18. %t3 = extractelement <4 x float> %t1, i32 1
  19. %t4 = fadd float %t2, %t3
  20. ret float %t4
  21. }
  22. define <4 x float> @baz(<4 x float> %a) {
  23. ; CHECK: .func (.param .align 16 .b8 func_retval0[16]) baz
  24. ; CHECK: .param .align 16 .b8 baz_param_0[16]
  25. ; CHECK: ld.param.v4.f32 {%f{{[0-9]+}}, %f{{[0-9]+}}, %f{{[0-9]+}}, %f{{[0-9]+}}}
  26. ; CHECK: st.param.v4.f32 [func_retval0+0], {%f{{[0-9]+}}, %f{{[0-9]+}}, %f{{[0-9]+}}, %f{{[0-9]+}}}
  27. %t1 = fmul <4 x float> %a, %a
  28. ret <4 x float> %t1
  29. }