ruby-llvm 13.0.1 → 13.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/llvm/core/builder.rb +87 -9
- data/lib/llvm/core/type.rb +4 -0
- data/lib/llvm/version.rb +1 -1
- metadata +13 -68
- data/test/array_test.rb +0 -40
- data/test/basic_block_test.rb +0 -89
- data/test/binary_operations_test.rb +0 -60
- data/test/bitcode_test.rb +0 -26
- data/test/branch_test.rb +0 -59
- data/test/call_test.rb +0 -84
- data/test/comparisons_test.rb +0 -68
- data/test/conversions_test.rb +0 -94
- data/test/double_test.rb +0 -36
- data/test/equality_test.rb +0 -91
- data/test/function_test.rb +0 -102
- data/test/generic_value_test.rb +0 -24
- data/test/instruction_test.rb +0 -32
- data/test/integer_test.rb +0 -28
- data/test/ipo_test.rb +0 -55
- data/test/linker_test.rb +0 -39
- data/test/mcjit_test.rb +0 -102
- data/test/memory_access_test.rb +0 -40
- data/test/module_test.rb +0 -95
- data/test/parameter_collection_test.rb +0 -30
- data/test/pass_manager_builder_test.rb +0 -74
- data/test/phi_test.rb +0 -35
- data/test/select_test.rb +0 -24
- data/test/struct_test.rb +0 -100
- data/test/target_test.rb +0 -126
- data/test/test_helper.rb +0 -64
- data/test/type_test.rb +0 -62
- data/test/vector_test.rb +0 -66
data/test/type_test.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
|
5
|
-
class TypeTestCase < Minitest::Test
|
6
|
-
|
7
|
-
extend MiniTest::Spec::DSL
|
8
|
-
|
9
|
-
def test_element_type
|
10
|
-
pointer = LLVM.Pointer(LLVM::Int32.type)
|
11
|
-
pointee = pointer.element_type
|
12
|
-
|
13
|
-
assert_equal :pointer, pointer.kind
|
14
|
-
assert_equal :integer, pointee.kind
|
15
|
-
|
16
|
-
assert_nil pointee.element_type
|
17
|
-
end
|
18
|
-
|
19
|
-
TO_S_TESTS = [
|
20
|
-
[LLVM.Struct(LLVM::Int32, LLVM::Int32), '{ i32, i32 }'],
|
21
|
-
[LLVM.Struct(LLVM::Int32, LLVM::Int32, "s1"), '%s1 = type { i32, i32 }'],
|
22
|
-
[LLVM::Type.struct([LLVM::Int32, LLVM::Int32], true), '<{ i32, i32 }>'],
|
23
|
-
[LLVM::Type.struct([LLVM::Int32, LLVM::Int32], true, "s2"), '%s2 = type <{ i32, i32 }>'],
|
24
|
-
|
25
|
-
[LLVM.Array(LLVM::Int8), '[0 x i8]'],
|
26
|
-
[LLVM.Array(LLVM::Int8, 42), '[42 x i8]'],
|
27
|
-
[LLVM::Type.array(LLVM::Int1), '[0 x i1]'],
|
28
|
-
[LLVM::Type.array(LLVM::Int1, 42), '[42 x i1]'],
|
29
|
-
|
30
|
-
[LLVM.Vector(LLVM::Int8, 42), '<42 x i8>'],
|
31
|
-
[LLVM::Type.vector(LLVM::Int1, 42), '<42 x i1>'],
|
32
|
-
|
33
|
-
[LLVM.Void, 'void'],
|
34
|
-
[LLVM::Type.void, 'void'],
|
35
|
-
|
36
|
-
[LLVM.Pointer(LLVM::Int8), 'i8*'],
|
37
|
-
[LLVM::Type.pointer(LLVM::Int1), 'i1*'],
|
38
|
-
|
39
|
-
[LLVM.Function([LLVM::Int8], LLVM.Void), 'void (i8)'],
|
40
|
-
[LLVM.Function([LLVM::Int8], LLVM::Int8), 'i8 (i8)'],
|
41
|
-
[LLVM.Function([], LLVM::Int8), 'i8 ()'],
|
42
|
-
[LLVM.Function([], LLVM.Void), 'void ()'],
|
43
|
-
[LLVM::Type.function([LLVM::Int1], LLVM.Void), 'void (i1)'],
|
44
|
-
[LLVM::Type.function([LLVM::Int1], LLVM::Int1), 'i1 (i1)'],
|
45
|
-
[LLVM::Type.function([], LLVM::Int1), 'i1 ()'],
|
46
|
-
[LLVM::Type.function([], LLVM.Void), 'void ()'],
|
47
|
-
].freeze
|
48
|
-
|
49
|
-
describe "LLVM::Type#to_s" do
|
50
|
-
TO_S_TESTS.each do |(type, string)|
|
51
|
-
it "should return '#{string}'" do
|
52
|
-
assert type.is_a?(LLVM::Type)
|
53
|
-
assert_equal string, type.to_s
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'should have 22 dynamic tests' do
|
58
|
-
assert_equal 22, TO_S_TESTS.size
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
end
|
data/test/vector_test.rb
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
|
5
|
-
class VectorTestCase < Minitest::Test
|
6
|
-
|
7
|
-
def setup
|
8
|
-
LLVM.init_jit
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_all_ones_vector
|
12
|
-
assert_raises(NotImplementedError) do
|
13
|
-
LLVM::ConstantVector.all_ones
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_constant_vector_from_size
|
18
|
-
vector = LLVM::ConstantVector.const(2) { |i| LLVM::Int(i) }
|
19
|
-
assert_instance_of LLVM::ConstantVector, vector
|
20
|
-
assert_equal 2, vector.size
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_constant_vector_from_array
|
24
|
-
vector = LLVM::ConstantVector.const([LLVM::Int(0), LLVM::Int(1)])
|
25
|
-
assert_instance_of LLVM::ConstantVector, vector
|
26
|
-
assert_equal 2, vector.size
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_vector_elements
|
30
|
-
assert_equal 2 + 3, run_vector_elements(2, 3).to_i
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_vector_shuffle
|
34
|
-
assert_equal 1 + 4, run_vector_shuffle(1, 2, 3, 4).to_i
|
35
|
-
end
|
36
|
-
|
37
|
-
def run_vector_elements(value1, value2)
|
38
|
-
run_function([LLVM::Int, LLVM::Int], [value1, value2], LLVM::Int) do |builder, function, *arguments|
|
39
|
-
entry = function.basic_blocks.append
|
40
|
-
builder.position_at_end(entry)
|
41
|
-
pointer = builder.alloca(LLVM::Vector(LLVM::Int, 2))
|
42
|
-
vector = builder.load(pointer)
|
43
|
-
vector = builder.insert_element(vector, arguments.first, LLVM::Int32.from_i(0))
|
44
|
-
vector = builder.insert_element(vector, arguments.last, LLVM::Int32.from_i(1))
|
45
|
-
builder.ret(builder.add(builder.extract_element(vector, LLVM::Int32.from_i(0)),
|
46
|
-
builder.extract_element(vector, LLVM::Int32.from_i(1))))
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def run_vector_shuffle(*values)
|
51
|
-
run_function([LLVM::Int, LLVM::Int, LLVM::Int, LLVM::Int], values, LLVM::Int) do |builder, function, *arguments|
|
52
|
-
entry = function.basic_blocks.append
|
53
|
-
builder.position_at_end(entry)
|
54
|
-
vector1 = builder.load(builder.alloca(LLVM::Vector(LLVM::Int, 2)))
|
55
|
-
vector1 = builder.insert_element(vector1, arguments[0], LLVM::Int32.from_i(0))
|
56
|
-
vector1 = builder.insert_element(vector1, arguments[1], LLVM::Int32.from_i(1))
|
57
|
-
vector2 = builder.load(builder.alloca(LLVM::Vector(LLVM::Int, 2)))
|
58
|
-
vector2 = builder.insert_element(vector2, arguments[2], LLVM::Int32.from_i(0))
|
59
|
-
vector2 = builder.insert_element(vector2, arguments[3], LLVM::Int32.from_i(1))
|
60
|
-
vector3 = builder.shuffle_vector(vector1, vector2, LLVM::ConstantVector.const([LLVM::Int(0), LLVM::Int(3)]))
|
61
|
-
builder.ret(builder.add(builder.extract_element(vector3, LLVM::Int32.from_i(0)),
|
62
|
-
builder.extract_element(vector3, LLVM::Int32.from_i(1))))
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
end
|