mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
29 lines
1.6 KiB
C
29 lines
1.6 KiB
C
// #target: macos-x64
|
|
module array_literal;
|
|
|
|
fn double test(uint x)
|
|
{
|
|
double[30] student_t = { 0.0 , 12.706 , 4.303 , 3.182 , 2.776 , 2.571 ,
|
|
2.447 , 2.365 , 2.306 , 2.262 , 2.228 ,
|
|
2.201 , 2.179 , 2.160 , 2.145 , 2.131 ,
|
|
2.120 , 2.110 , 2.101 , 2.093 , 2.086 ,
|
|
2.080 , 2.074 , 2.069 , 2.064 , 2.060 ,
|
|
2.056 , 2.052 , 2.048 , 2.045 };
|
|
return student_t[x];
|
|
}
|
|
|
|
/* #expect: array_literal.ll
|
|
|
|
@.__const = private unnamed_addr constant [30 x double] [double 0.000000e+00, double 1.270600e+01, double 4.303000e+00, double 3.182000e+00, double 2.776000e+00, double 2.571000e+00, double 2.447000e+00, double 2.365000e+00, double 2.306000e+00, double 2.262000e+00, double 2.228000e+00, double 2.201000e+00, double 2.179000e+00, double 2.160000e+00, double 2.145000e+00, double 2.131000e+00, double 2.120000e+00, double 2.110000e+00, double 2.101000e+00, double 2.093000e+00, double 2.086000e+00, double 2.080000e+00, double 2.074000e+00, double 2.069000e+00, double 2.064000e+00, double 2.060000e+00, double 2.056000e+00, double 2.052000e+00, double 2.048000e+00, double 2.045000e+00], align 16
|
|
|
|
; Function Attrs:
|
|
define double @array_literal.test(i32 %0) #0 {
|
|
entry:
|
|
%student_t = alloca [30 x double], align 16
|
|
call void @llvm.memcpy.p0.p0.i32(ptr align 16 %student_t, ptr align 16 @.__const, i32 240, i1 false)
|
|
%zext = zext i32 %0 to i64
|
|
%ptroffset = getelementptr inbounds [8 x i8], ptr %student_t, i64 %zext
|
|
%1 = load double, ptr %ptroffset, align 8
|
|
ret double %1
|
|
}
|