• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -march=ptx32 | FileCheck %s
2
3@A = common global [1536 x [1536 x float]] zeroinitializer, align 4
4@B = common global [1536 x [1536 x float]] zeroinitializer, align 4
5
6define internal ptx_device void @init_array(i32 %x, i32 %y) {
7  %arrayidx103 = getelementptr [1536 x [1536 x float]]* @A, i32 0, i32 %x, i32 %y
8  %arrayidx224 = getelementptr [1536 x [1536 x float]]* @B, i32 0, i32 %x, i32 %y
9  %mul5 = mul i32 %x, %y
10  %rem = srem i32 %mul5, 1024
11  %add = add nsw i32 %rem, 1
12; CHECK: cvt.rn.f64.s32 %fd{{[0-9]+}}, %r{{[0-9]+}}
13  %conv = sitofp i32 %add to double
14  %div = fmul double %conv, 5.000000e-01
15  %conv7 = fptrunc double %div to float
16  store float %conv7, float* %arrayidx103, align 4
17  %rem14 = srem i32 %mul5, 1024
18  %add15 = add nsw i32 %rem14, 1
19  %conv16 = sitofp i32 %add15 to double
20  %div17 = fmul double %conv16, 5.000000e-01
21  %conv18 = fptrunc double %div17 to float
22  store float %conv18, float* %arrayidx224, align 4
23  ret void
24}
25