|
9 | 9 | ; operations are supported. Also verify that edge cases such as division
|
10 | 10 | ; by zero are handled gracefully.
|
11 | 11 |
|
| 12 | +; CHECK: @var_snegate = addrspace(1) global i32 -53 |
| 13 | +; CHECK: @var_not = addrspace(1) global i32 -54 |
12 | 14 | ; CHECK: @var_iadd = addrspace(1) global i32 49
|
13 | 15 | ; CHECK: @var_isub = addrspace(1) global i32 57
|
14 | 16 | ; CHECK: @var_imul = addrspace(1) global i32 -212
|
|
28 | 30 | ; CHECK: @var_bitand = addrspace(1) global i32 52
|
29 | 31 | ; CHECK: @var_logor = addrspace(1) global i1 true
|
30 | 32 | ; CHECK: @var_logand = addrspace(1) global i1 false
|
| 33 | +; CHECK: @var_lognot = addrspace(1) global i1 false |
31 | 34 |
|
32 | 35 | OpCapability Addresses
|
33 | 36 | OpCapability Linkage
|
34 | 37 | OpCapability Kernel
|
35 | 38 | OpMemoryModel Physical32 OpenCL
|
36 | 39 | OpEntryPoint Kernel %15 "foo"
|
37 | 40 | OpName %entry "entry"
|
| 41 | + OpDecorate %var_snegate LinkageAttributes "var_snegate" Export |
| 42 | + OpDecorate %var_not LinkageAttributes "var_not" Export |
38 | 43 | OpDecorate %var_iadd LinkageAttributes "var_iadd" Export
|
39 | 44 | OpDecorate %var_isub LinkageAttributes "var_isub" Export
|
40 | 45 | OpDecorate %var_imul LinkageAttributes "var_imul" Export
|
|
53 | 58 | OpDecorate %var_bitand LinkageAttributes "var_bitand" Export
|
54 | 59 | OpDecorate %var_logor LinkageAttributes "var_logor" Export
|
55 | 60 | OpDecorate %var_logand LinkageAttributes "var_logand" Export
|
| 61 | + OpDecorate %var_lognot LinkageAttributes "var_lognot" Export |
56 | 62 | %bool = OpTypeBool
|
57 | 63 | %true = OpConstantTrue %bool
|
58 | 64 | %false = OpConstantFalse %bool
|
|
61 | 67 | %uint_4 = OpConstant %uint 4
|
62 | 68 | %uint_53 = OpConstant %uint 53
|
63 | 69 | %uint_min4 = OpConstant %uint 0xfffffffc
|
| 70 | + %snegate = OpSpecConstantOp %uint SNegate %uint_53 |
| 71 | + %not = OpSpecConstantOp %uint Not %uint_53 |
64 | 72 | %iadd = OpSpecConstantOp %uint IAdd %uint_53 %uint_min4
|
65 | 73 | %isub = OpSpecConstantOp %uint ISub %uint_53 %uint_min4
|
66 | 74 | %imul = OpSpecConstantOp %uint IMul %uint_53 %uint_min4
|
|
79 | 87 | %bitand = OpSpecConstantOp %uint BitwiseAnd %uint_53 %uint_min4
|
80 | 88 | %logor = OpSpecConstantOp %bool LogicalOr %true %false
|
81 | 89 | %logand = OpSpecConstantOp %bool LogicalAnd %true %false
|
| 90 | + %lognot = OpSpecConstantOp %bool LogicalNot %true |
82 | 91 | %_ptr_uint = OpTypePointer CrossWorkgroup %uint
|
83 | 92 | %_ptr_bool = OpTypePointer CrossWorkgroup %bool
|
84 | 93 | %void = OpTypeVoid
|
85 | 94 | %14 = OpTypeFunction %void
|
86 | 95 |
|
| 96 | +%var_snegate = OpVariable %_ptr_uint CrossWorkgroup %snegate |
| 97 | + %var_not = OpVariable %_ptr_uint CrossWorkgroup %not |
87 | 98 | %var_iadd = OpVariable %_ptr_uint CrossWorkgroup %iadd
|
88 | 99 | %var_isub = OpVariable %_ptr_uint CrossWorkgroup %isub
|
89 | 100 | %var_imul = OpVariable %_ptr_uint CrossWorkgroup %imul
|
|
102 | 113 | %var_bitand = OpVariable %_ptr_uint CrossWorkgroup %bitand
|
103 | 114 | %var_logor = OpVariable %_ptr_bool CrossWorkgroup %logor
|
104 | 115 | %var_logand = OpVariable %_ptr_bool CrossWorkgroup %logand
|
| 116 | + %var_lognot = OpVariable %_ptr_bool CrossWorkgroup %lognot |
105 | 117 |
|
106 | 118 | %15 = OpFunction %void Pure %14
|
107 | 119 | %entry = OpLabel
|
|
0 commit comments