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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
|
// Test formatters for SIMD.
// REQUIRES: system-darwin
// REQUIRES: swift
// RUN: %lldb --repl < %s | FileCheck %s
import simd
simd_int2(-1, 2)
// CHECK: $R{{.*}}: simd_int2 = (-1, 2)
simd_int3(-1, 2, 3)
// CHECK: $R{{.*}}: simd_int3 = (-1, 2, 3)
simd_int4(-1, 2, 3, 4)
// CHECK: $R{{.*}}: simd_int4 = (-1, 2, 3, 4)
simd_uint2(1, 2)
// CHECK: $R{{.*}}: simd_uint2 = (1, 2)
simd_uint3(1, 2, 3)
// CHECK: $R{{.*}}: simd_uint3 = (1, 2, 3)
simd_uint4(1, 2, 3, 4)
// CHECK: $R{{.*}}: simd_uint4 = (1, 2, 3, 4)
let colf2 = simd_float2(1.5, 2)
// CHECK: colf2: simd_float2 = (1.500000e+00, 2.000000e+00)
let colf3 = simd_float3(1.5, 2, 3)
// CHECK: colf3: simd_float3 = (1.500000e+00, 2.000000e+00, 3.000000e+00)
let colf4 = simd_float4(1.5, 2, 3, 4)
// CHECK: colf4: simd_float4 = (1.500000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00)
let cold2 = simd_double2(1.5, 2)
// CHECK: cold2: simd_double2 = (1.500000e+00, 2.000000e+00)
let cold3 = simd_double3(1.5, 2, 3)
// CHECK: cold3: simd_double3 = (1.500000e+00, 2.000000e+00, 3.000000e+00)
let cold4 = simd_double4(1.5, 2, 3, 4)
// CHECK: cold4: simd_double4 = (1.500000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00)
simd_float2x2([colf2, colf2])
// CHECK: $R{{.*}}: simd_float2x2 =
// CHECK: [ [1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00] ]
simd_float3x2([colf2, colf2, colf2])
// CHECK: $R{{.*}}: simd_float3x2 =
// CHECK: [ [1.500000e+00, 1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00, 2.000000e+00] ]
simd_float4x2([colf2, colf2, colf2, colf2])
// CHECK: $R{{.*}}: simd_float4x2 =
// CHECK: [ [1.500000e+00, 1.500000e+00, 1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00, 2.000000e+00, 2.000000e+00] ]
simd_float2x3([colf3, colf3])
// CHECK: $R{{.*}}: simd_float2x3 =
// CHECK: [ [1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00],
// CHECK: [3.000000e+00, 3.000000e+00] ]
simd_float3x3([colf3, colf3, colf3])
// CHECK: $R{{.*}}: simd_float3x3 =
// CHECK: [ [1.500000e+00, 1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00, 2.000000e+00],
// CHECK: [3.000000e+00, 3.000000e+00, 3.000000e+00] ]
simd_float4x3([colf3, colf3, colf3, colf3])
// CHECK: $R{{.*}}: simd_float4x3 =
// CHECK: [ [1.500000e+00, 1.500000e+00, 1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00, 2.000000e+00, 2.000000e+00],
// CHECK: [3.000000e+00, 3.000000e+00, 3.000000e+00, 3.000000e+00] ]
simd_float2x4([colf4, colf4])
// CHECK: $R{{.*}}: simd_float2x4 =
// CHECK: [ [1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00],
// CHECK: [3.000000e+00, 3.000000e+00],
// CHECK: [4.000000e+00, 4.000000e+00] ]
simd_float3x4([colf4, colf4, colf4])
// CHECK: $R{{.*}}: simd_float3x4 =
// CHECK: [ [1.500000e+00, 1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00, 2.000000e+00],
// CHECK: [3.000000e+00, 3.000000e+00, 3.000000e+00],
// CHECK: [4.000000e+00, 4.000000e+00, 4.000000e+00] ]
simd_float4x4([colf4, colf4, colf4, colf4])
// CHECK: $R{{.*}}: simd_float4x4 =
// CHECK: [ [1.500000e+00, 1.500000e+00, 1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00, 2.000000e+00, 2.000000e+00],
// CHECK: [3.000000e+00, 3.000000e+00, 3.000000e+00, 3.000000e+00],
// CHECK: [4.000000e+00, 4.000000e+00, 4.000000e+00, 4.000000e+00] ]
simd_float4x4(rows: [colf4, colf4, colf4, colf4])
// CHECK: $R{{.*}}: simd_float4x4 =
// CHECK: [ [1.500000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00],
// CHECK: [1.500000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00],
// CHECK: [1.500000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00],
// CHECK: [1.500000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00] ]
simd_double2x2([cold2, cold2])
// CHECK: $R{{.*}}: simd_double2x2 =
// CHECK: [ [1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00] ]
simd_double3x2([cold2, cold2, cold2])
// CHECK: $R{{.*}}: simd_double3x2 =
// CHECK: [ [1.500000e+00, 1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00, 2.000000e+00] ]
simd_double4x2([cold2, cold2, cold2, cold2])
// CHECK: $R{{.*}}: simd_double4x2 =
// CHECK: [ [1.500000e+00, 1.500000e+00, 1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00, 2.000000e+00, 2.000000e+00] ]
simd_double2x3([cold3, cold3])
// CHECK: $R{{.*}}: simd_double2x3 =
// CHECK: [ [1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00],
// CHECK: [3.000000e+00, 3.000000e+00] ]
simd_double3x3([cold3, cold3, cold3])
// CHECK: $R{{.*}}: simd_double3x3 =
// CHECK: [ [1.500000e+00, 1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00, 2.000000e+00],
// CHECK: [3.000000e+00, 3.000000e+00, 3.000000e+00] ]
simd_double4x3([cold3, cold3, cold3, cold3])
// CHECK: $R{{.*}}: simd_double4x3 =
// CHECK: [ [1.500000e+00, 1.500000e+00, 1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00, 2.000000e+00, 2.000000e+00],
// CHECK: [3.000000e+00, 3.000000e+00, 3.000000e+00, 3.000000e+00] ]
simd_double2x4([cold4, cold4])
// CHECK: $R{{.*}}: simd_double2x4 =
// CHECK: [ [1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00],
// CHECK: [3.000000e+00, 3.000000e+00],
// CHECK: [4.000000e+00, 4.000000e+00] ]
simd_double3x4([cold4, cold4, cold4])
// CHECK: $R{{.*}}: simd_double3x4 =
// CHECK: [ [1.500000e+00, 1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00, 2.000000e+00],
// CHECK: [3.000000e+00, 3.000000e+00, 3.000000e+00],
// CHECK: [4.000000e+00, 4.000000e+00, 4.000000e+00] ]
simd_double4x4([cold4, cold4, cold4, cold4])
// CHECK: $R{{.*}}: simd_double4x4 =
// CHECK: [ [1.500000e+00, 1.500000e+00, 1.500000e+00, 1.500000e+00],
// CHECK: [2.000000e+00, 2.000000e+00, 2.000000e+00, 2.000000e+00],
// CHECK: [3.000000e+00, 3.000000e+00, 3.000000e+00, 3.000000e+00],
// CHECK: [4.000000e+00, 4.000000e+00, 4.000000e+00, 4.000000e+00] ]
simd_double4x4(rows: [cold4, cold4, cold4, cold4])
// CHECK: $R{{.*}}: simd_double4x4 =
// CHECK: [ [1.500000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00],
// CHECK: [1.500000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00],
// CHECK: [1.500000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00],
// CHECK: [1.500000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00] ]
simd_quatf(vector: colf4)
// CHECK: $R{{.*}}: simd_quatf = (1.500000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00)
simd_quatd(vector: cold4)
// CHECK: $R{{.*}}: simd_quatd = (1.500000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00)
simd_quaternion(1.0, 0.5, 0.3, 0.1)
// CHECK: $R{{.*}}: simd_quatd = (1.000000e+00, 5.000000e-01, 3.000000e-01, 1.000000e-01)
// Test the new SIMD types
let tinky = SIMD2<Int>(1, 2)
// CHECK: {{tinky}}: SIMD2<Int> = (1, 2)
let patatino = SIMD4<Double>(1.5, 2.5, 3.5, 4.5)
// CHECK: {{patatino}}: SIMD4<Double> = (1.5, 2.5, 3.5, 4.5)
// Make sure we don't print the padding for SIMD3
let claude = SIMD3(1, 2, 3)
// CHECK: {{claude}}: SIMD3<Int> = (1, 2, 3)
// Make sure we handle typealiasing correctly.
typealias Tinky = SIMD3<Int>
let winky = Tinky()
// CHECK: {{winky}}: Tinky = (0, 0, 0)
let ohmy = SIMD32<UInt8>(repeating: 0)
// CHECK: {{ohmy}}: SIMD32<UInt8> = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|