1111// NATIVE_HALF: ret i16 %dx.dot
1212int16_t test_dot_short (int16_t p0, int16_t p1) { return dot (p0, p1); }
1313
14- // NATIVE_HALF: %dx.dot = call i16 @llvm.dx.dot .v2i16(<2 x i16> %0, <2 x i16> %1)
14+ // NATIVE_HALF: %dx.dot = call i16 @llvm.dx.sdot .v2i16(<2 x i16> %0, <2 x i16> %1)
1515// NATIVE_HALF: ret i16 %dx.dot
1616int16_t test_dot_short2 (int16_t2 p0, int16_t2 p1) { return dot (p0, p1); }
1717
18- // NATIVE_HALF: %dx.dot = call i16 @llvm.dx.dot .v3i16(<3 x i16> %0, <3 x i16> %1)
18+ // NATIVE_HALF: %dx.dot = call i16 @llvm.dx.sdot .v3i16(<3 x i16> %0, <3 x i16> %1)
1919// NATIVE_HALF: ret i16 %dx.dot
2020int16_t test_dot_short3 (int16_t3 p0, int16_t3 p1) { return dot (p0, p1); }
2121
22- // NATIVE_HALF: %dx.dot = call i16 @llvm.dx.dot .v4i16(<4 x i16> %0, <4 x i16> %1)
22+ // NATIVE_HALF: %dx.dot = call i16 @llvm.dx.sdot .v4i16(<4 x i16> %0, <4 x i16> %1)
2323// NATIVE_HALF: ret i16 %dx.dot
2424int16_t test_dot_short4 (int16_t4 p0, int16_t4 p1) { return dot (p0, p1); }
2525
2626// NATIVE_HALF: %dx.dot = mul i16 %0, %1
2727// NATIVE_HALF: ret i16 %dx.dot
2828uint16_t test_dot_ushort (uint16_t p0, uint16_t p1) { return dot (p0, p1); }
2929
30- // NATIVE_HALF: %dx.dot = call i16 @llvm.dx.dot .v2i16(<2 x i16> %0, <2 x i16> %1)
30+ // NATIVE_HALF: %dx.dot = call i16 @llvm.dx.udot .v2i16(<2 x i16> %0, <2 x i16> %1)
3131// NATIVE_HALF: ret i16 %dx.dot
3232uint16_t test_dot_ushort2 (uint16_t2 p0, uint16_t2 p1) { return dot (p0, p1); }
3333
34- // NATIVE_HALF: %dx.dot = call i16 @llvm.dx.dot .v3i16(<3 x i16> %0, <3 x i16> %1)
34+ // NATIVE_HALF: %dx.dot = call i16 @llvm.dx.udot .v3i16(<3 x i16> %0, <3 x i16> %1)
3535// NATIVE_HALF: ret i16 %dx.dot
3636uint16_t test_dot_ushort3 (uint16_t3 p0, uint16_t3 p1) { return dot (p0, p1); }
3737
38- // NATIVE_HALF: %dx.dot = call i16 @llvm.dx.dot .v4i16(<4 x i16> %0, <4 x i16> %1)
38+ // NATIVE_HALF: %dx.dot = call i16 @llvm.dx.udot .v4i16(<4 x i16> %0, <4 x i16> %1)
3939// NATIVE_HALF: ret i16 %dx.dot
4040uint16_t test_dot_ushort4 (uint16_t4 p0, uint16_t4 p1) { return dot (p0, p1); }
4141#endif
@@ -44,63 +44,63 @@ uint16_t test_dot_ushort4(uint16_t4 p0, uint16_t4 p1) { return dot(p0, p1); }
4444// CHECK: ret i32 %dx.dot
4545int test_dot_int (int p0, int p1) { return dot (p0, p1); }
4646
47- // CHECK: %dx.dot = call i32 @llvm.dx.dot .v2i32(<2 x i32> %0, <2 x i32> %1)
47+ // CHECK: %dx.dot = call i32 @llvm.dx.sdot .v2i32(<2 x i32> %0, <2 x i32> %1)
4848// CHECK: ret i32 %dx.dot
4949int test_dot_int2 (int2 p0, int2 p1) { return dot (p0, p1); }
5050
51- // CHECK: %dx.dot = call i32 @llvm.dx.dot .v3i32(<3 x i32> %0, <3 x i32> %1)
51+ // CHECK: %dx.dot = call i32 @llvm.dx.sdot .v3i32(<3 x i32> %0, <3 x i32> %1)
5252// CHECK: ret i32 %dx.dot
5353int test_dot_int3 (int3 p0, int3 p1) { return dot (p0, p1); }
5454
55- // CHECK: %dx.dot = call i32 @llvm.dx.dot .v4i32(<4 x i32> %0, <4 x i32> %1)
55+ // CHECK: %dx.dot = call i32 @llvm.dx.sdot .v4i32(<4 x i32> %0, <4 x i32> %1)
5656// CHECK: ret i32 %dx.dot
5757int test_dot_int4 (int4 p0, int4 p1) { return dot (p0, p1); }
5858
5959// CHECK: %dx.dot = mul i32 %0, %1
6060// CHECK: ret i32 %dx.dot
6161uint test_dot_uint (uint p0, uint p1) { return dot (p0, p1); }
6262
63- // CHECK: %dx.dot = call i32 @llvm.dx.dot .v2i32(<2 x i32> %0, <2 x i32> %1)
63+ // CHECK: %dx.dot = call i32 @llvm.dx.udot .v2i32(<2 x i32> %0, <2 x i32> %1)
6464// CHECK: ret i32 %dx.dot
6565uint test_dot_uint2 (uint2 p0, uint2 p1) { return dot (p0, p1); }
6666
67- // CHECK: %dx.dot = call i32 @llvm.dx.dot .v3i32(<3 x i32> %0, <3 x i32> %1)
67+ // CHECK: %dx.dot = call i32 @llvm.dx.udot .v3i32(<3 x i32> %0, <3 x i32> %1)
6868// CHECK: ret i32 %dx.dot
6969uint test_dot_uint3 (uint3 p0, uint3 p1) { return dot (p0, p1); }
7070
71- // CHECK: %dx.dot = call i32 @llvm.dx.dot .v4i32(<4 x i32> %0, <4 x i32> %1)
71+ // CHECK: %dx.dot = call i32 @llvm.dx.udot .v4i32(<4 x i32> %0, <4 x i32> %1)
7272// CHECK: ret i32 %dx.dot
7373uint test_dot_uint4 (uint4 p0, uint4 p1) { return dot (p0, p1); }
7474
7575// CHECK: %dx.dot = mul i64 %0, %1
7676// CHECK: ret i64 %dx.dot
7777int64_t test_dot_long (int64_t p0, int64_t p1) { return dot (p0, p1); }
7878
79- // CHECK: %dx.dot = call i64 @llvm.dx.dot .v2i64(<2 x i64> %0, <2 x i64> %1)
79+ // CHECK: %dx.dot = call i64 @llvm.dx.sdot .v2i64(<2 x i64> %0, <2 x i64> %1)
8080// CHECK: ret i64 %dx.dot
8181int64_t test_dot_long2 (int64_t2 p0, int64_t2 p1) { return dot (p0, p1); }
8282
83- // CHECK: %dx.dot = call i64 @llvm.dx.dot .v3i64(<3 x i64> %0, <3 x i64> %1)
83+ // CHECK: %dx.dot = call i64 @llvm.dx.sdot .v3i64(<3 x i64> %0, <3 x i64> %1)
8484// CHECK: ret i64 %dx.dot
8585int64_t test_dot_long3 (int64_t3 p0, int64_t3 p1) { return dot (p0, p1); }
8686
87- // CHECK: %dx.dot = call i64 @llvm.dx.dot .v4i64(<4 x i64> %0, <4 x i64> %1)
87+ // CHECK: %dx.dot = call i64 @llvm.dx.sdot .v4i64(<4 x i64> %0, <4 x i64> %1)
8888// CHECK: ret i64 %dx.dot
8989int64_t test_dot_long4 (int64_t4 p0, int64_t4 p1) { return dot (p0, p1); }
9090
9191// CHECK: %dx.dot = mul i64 %0, %1
9292// CHECK: ret i64 %dx.dot
9393uint64_t test_dot_ulong (uint64_t p0, uint64_t p1) { return dot (p0, p1); }
9494
95- // CHECK: %dx.dot = call i64 @llvm.dx.dot .v2i64(<2 x i64> %0, <2 x i64> %1)
95+ // CHECK: %dx.dot = call i64 @llvm.dx.udot .v2i64(<2 x i64> %0, <2 x i64> %1)
9696// CHECK: ret i64 %dx.dot
9797uint64_t test_dot_ulong2 (uint64_t2 p0, uint64_t2 p1) { return dot (p0, p1); }
9898
99- // CHECK: %dx.dot = call i64 @llvm.dx.dot .v3i64(<3 x i64> %0, <3 x i64> %1)
99+ // CHECK: %dx.dot = call i64 @llvm.dx.udot .v3i64(<3 x i64> %0, <3 x i64> %1)
100100// CHECK: ret i64 %dx.dot
101101uint64_t test_dot_ulong3 (uint64_t3 p0, uint64_t3 p1) { return dot (p0, p1); }
102102
103- // CHECK: %dx.dot = call i64 @llvm.dx.dot .v4i64(<4 x i64> %0, <4 x i64> %1)
103+ // CHECK: %dx.dot = call i64 @llvm.dx.udot .v4i64(<4 x i64> %0, <4 x i64> %1)
104104// CHECK: ret i64 %dx.dot
105105uint64_t test_dot_ulong4 (uint64_t4 p0, uint64_t4 p1) { return dot (p0, p1); }
106106
0 commit comments