File: aligned-attr-prim.ispc

package info (click to toggle)
ispc 1.28.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 97,620 kB
  • sloc: cpp: 77,067; python: 8,303; yacc: 3,337; lex: 1,126; ansic: 631; sh: 475; makefile: 17
file content (41 lines) | stat: -rw-r--r-- 1,747 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// This tests checks that the alignment attribute correctly works for primitive types

// RUN: %{ispc} --no-discard-value-names --nowrap --target=host --nostdlib --debug-phase=10:10 %s -o t.o | FileCheck %s

// CHECK: @u4 = global i32 0, align 4
// CHECK: @v16 = global <{{.*}} x i32> zeroinitializer, align 16
__attribute__((aligned(4))) uniform int u4;
__attribute__((aligned(16))) varying int v16;

// CHECK: @su256 = global <4 x i32> zeroinitializer, align 256
// CHECK: @sv512 = global [4 x <{{.*}} x i32>] zeroinitializer, align 512
__attribute__((aligned(256))) uniform int<4> su256;
__attribute__((aligned(512))) varying int<4> sv512;

void foo() {
// CHECK: @static.{{.*}}.s_u8 = internal global i32 0, align 8
// CHECK: @static.{{.*}}.s_v32 = internal global <{{.*}} x i32> zeroinitializer, align 32
    __attribute__((aligned(8))) static uniform int s_u8;
    __attribute__((aligned(32))) static varying int s_v32;

    s_u8 = 0;
    s_v32 = 0;

// CHECK: @static.{{.*}}.s_su256 = internal global <{{.*}} x i32> zeroinitializer, align 256
// CHECK: @static.{{.*}}.s_sv512 = internal global [4 x <{{.*}} x i32>] zeroinitializer, align 512
    __attribute__((aligned(256))) static uniform int<4> s_su256;
    __attribute__((aligned(512))) static varying int<4> s_sv512;

    s_su256 = 0;
    s_sv512 = 0;

// CHECK: %s_u64 = alloca i32, align 64
// CHECK: %s_v128 = alloca <{{.*}} x i32>, align 128
    __attribute__((aligned(64))) uniform int s_u64;
    __attribute__((aligned(128))) varying int s_v128;

// CHECK: %su1024 = alloca <{{.*}} x i32>, align 1024
// CHECK: %sv2048 = alloca [4 x <{{.*}} x i32>], align 2048
    __attribute__((aligned(1024))) uniform int<4> su1024;
    __attribute__((aligned(2048))) varying int<4> sv2048;
}