This revision was automatically updated to reflect the committed changes. Closed by commit rGfd3bd63df26a: [WebAssembly] Make bitmask instructions return unsigned ints (authored by tlively).
Changed prior to commit: https://reviews.llvm.org/D108401?vs=367591&id=367653#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D108401/new/ https://reviews.llvm.org/D108401 Files: clang/include/clang/Basic/BuiltinsWebAssembly.def clang/lib/Headers/wasm_simd128.h clang/test/Headers/wasm.c Index: clang/test/Headers/wasm.c =================================================================== --- clang/test/Headers/wasm.c +++ clang/test/Headers/wasm.c @@ -1345,7 +1345,7 @@ // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.wasm.bitmask.v16i8(<16 x i8> [[TMP0]]) #[[ATTR6]] // CHECK-NEXT: ret i32 [[TMP1]] // -int32_t test_i8x16_bitmask(v128_t a) { +uint32_t test_i8x16_bitmask(v128_t a) { return wasm_i8x16_bitmask(a); } @@ -1577,7 +1577,7 @@ // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.wasm.bitmask.v8i16(<8 x i16> [[TMP0]]) #[[ATTR6]] // CHECK-NEXT: ret i32 [[TMP1]] // -int32_t test_i16x8_bitmask(v128_t a) { +uint32_t test_i16x8_bitmask(v128_t a) { return wasm_i16x8_bitmask(a); } @@ -1804,7 +1804,7 @@ // CHECK-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.wasm.bitmask.v4i32(<4 x i32> [[A:%.*]]) #[[ATTR6]] // CHECK-NEXT: ret i32 [[TMP0]] // -int32_t test_i32x4_bitmask(v128_t a) { +uint32_t test_i32x4_bitmask(v128_t a) { return wasm_i32x4_bitmask(a); } @@ -1958,7 +1958,7 @@ // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.wasm.bitmask.v2i64(<2 x i64> [[TMP0]]) #[[ATTR6]] // CHECK-NEXT: ret i32 [[TMP1]] // -int32_t test_i64x2_bitmask(v128_t a) { +uint32_t test_i64x2_bitmask(v128_t a) { return wasm_i64x2_bitmask(a); } Index: clang/lib/Headers/wasm_simd128.h =================================================================== --- clang/lib/Headers/wasm_simd128.h +++ clang/lib/Headers/wasm_simd128.h @@ -804,7 +804,7 @@ return __builtin_wasm_all_true_i8x16((__i8x16)__a); } -static __inline__ int32_t __DEFAULT_FN_ATTRS wasm_i8x16_bitmask(v128_t __a) { +static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i8x16_bitmask(v128_t __a) { return __builtin_wasm_bitmask_i8x16((__i8x16)__a); } @@ -894,7 +894,7 @@ return __builtin_wasm_all_true_i16x8((__i16x8)__a); } -static __inline__ int32_t __DEFAULT_FN_ATTRS wasm_i16x8_bitmask(v128_t __a) { +static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i16x8_bitmask(v128_t __a) { return __builtin_wasm_bitmask_i16x8((__i16x8)__a); } @@ -985,7 +985,7 @@ return __builtin_wasm_all_true_i32x4((__i32x4)__a); } -static __inline__ int32_t __DEFAULT_FN_ATTRS wasm_i32x4_bitmask(v128_t __a) { +static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i32x4_bitmask(v128_t __a) { return __builtin_wasm_bitmask_i32x4((__i32x4)__a); } @@ -1056,7 +1056,7 @@ return __builtin_wasm_all_true_i64x2((__i64x2)__a); } -static __inline__ int32_t __DEFAULT_FN_ATTRS wasm_i64x2_bitmask(v128_t __a) { +static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i64x2_bitmask(v128_t __a) { return __builtin_wasm_bitmask_i64x2((__i64x2)__a); } Index: clang/include/clang/Basic/BuiltinsWebAssembly.def =================================================================== --- clang/include/clang/Basic/BuiltinsWebAssembly.def +++ clang/include/clang/Basic/BuiltinsWebAssembly.def @@ -119,10 +119,10 @@ TARGET_BUILTIN(__builtin_wasm_all_true_i32x4, "iV4i", "nc", "simd128") TARGET_BUILTIN(__builtin_wasm_all_true_i64x2, "iV2LLi", "nc", "simd128") -TARGET_BUILTIN(__builtin_wasm_bitmask_i8x16, "iV16Sc", "nc", "simd128") -TARGET_BUILTIN(__builtin_wasm_bitmask_i16x8, "iV8s", "nc", "simd128") -TARGET_BUILTIN(__builtin_wasm_bitmask_i32x4, "iV4i", "nc", "simd128") -TARGET_BUILTIN(__builtin_wasm_bitmask_i64x2, "iV2LLi", "nc", "simd128") +TARGET_BUILTIN(__builtin_wasm_bitmask_i8x16, "UiV16Sc", "nc", "simd128") +TARGET_BUILTIN(__builtin_wasm_bitmask_i16x8, "UiV8s", "nc", "simd128") +TARGET_BUILTIN(__builtin_wasm_bitmask_i32x4, "UiV4i", "nc", "simd128") +TARGET_BUILTIN(__builtin_wasm_bitmask_i64x2, "UiV2LLi", "nc", "simd128") TARGET_BUILTIN(__builtin_wasm_abs_f32x4, "V4fV4f", "nc", "simd128") TARGET_BUILTIN(__builtin_wasm_abs_f64x2, "V2dV2d", "nc", "simd128")
Index: clang/test/Headers/wasm.c =================================================================== --- clang/test/Headers/wasm.c +++ clang/test/Headers/wasm.c @@ -1345,7 +1345,7 @@ // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.wasm.bitmask.v16i8(<16 x i8> [[TMP0]]) #[[ATTR6]] // CHECK-NEXT: ret i32 [[TMP1]] // -int32_t test_i8x16_bitmask(v128_t a) { +uint32_t test_i8x16_bitmask(v128_t a) { return wasm_i8x16_bitmask(a); } @@ -1577,7 +1577,7 @@ // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.wasm.bitmask.v8i16(<8 x i16> [[TMP0]]) #[[ATTR6]] // CHECK-NEXT: ret i32 [[TMP1]] // -int32_t test_i16x8_bitmask(v128_t a) { +uint32_t test_i16x8_bitmask(v128_t a) { return wasm_i16x8_bitmask(a); } @@ -1804,7 +1804,7 @@ // CHECK-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.wasm.bitmask.v4i32(<4 x i32> [[A:%.*]]) #[[ATTR6]] // CHECK-NEXT: ret i32 [[TMP0]] // -int32_t test_i32x4_bitmask(v128_t a) { +uint32_t test_i32x4_bitmask(v128_t a) { return wasm_i32x4_bitmask(a); } @@ -1958,7 +1958,7 @@ // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.wasm.bitmask.v2i64(<2 x i64> [[TMP0]]) #[[ATTR6]] // CHECK-NEXT: ret i32 [[TMP1]] // -int32_t test_i64x2_bitmask(v128_t a) { +uint32_t test_i64x2_bitmask(v128_t a) { return wasm_i64x2_bitmask(a); } Index: clang/lib/Headers/wasm_simd128.h =================================================================== --- clang/lib/Headers/wasm_simd128.h +++ clang/lib/Headers/wasm_simd128.h @@ -804,7 +804,7 @@ return __builtin_wasm_all_true_i8x16((__i8x16)__a); } -static __inline__ int32_t __DEFAULT_FN_ATTRS wasm_i8x16_bitmask(v128_t __a) { +static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i8x16_bitmask(v128_t __a) { return __builtin_wasm_bitmask_i8x16((__i8x16)__a); } @@ -894,7 +894,7 @@ return __builtin_wasm_all_true_i16x8((__i16x8)__a); } -static __inline__ int32_t __DEFAULT_FN_ATTRS wasm_i16x8_bitmask(v128_t __a) { +static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i16x8_bitmask(v128_t __a) { return __builtin_wasm_bitmask_i16x8((__i16x8)__a); } @@ -985,7 +985,7 @@ return __builtin_wasm_all_true_i32x4((__i32x4)__a); } -static __inline__ int32_t __DEFAULT_FN_ATTRS wasm_i32x4_bitmask(v128_t __a) { +static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i32x4_bitmask(v128_t __a) { return __builtin_wasm_bitmask_i32x4((__i32x4)__a); } @@ -1056,7 +1056,7 @@ return __builtin_wasm_all_true_i64x2((__i64x2)__a); } -static __inline__ int32_t __DEFAULT_FN_ATTRS wasm_i64x2_bitmask(v128_t __a) { +static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i64x2_bitmask(v128_t __a) { return __builtin_wasm_bitmask_i64x2((__i64x2)__a); } Index: clang/include/clang/Basic/BuiltinsWebAssembly.def =================================================================== --- clang/include/clang/Basic/BuiltinsWebAssembly.def +++ clang/include/clang/Basic/BuiltinsWebAssembly.def @@ -119,10 +119,10 @@ TARGET_BUILTIN(__builtin_wasm_all_true_i32x4, "iV4i", "nc", "simd128") TARGET_BUILTIN(__builtin_wasm_all_true_i64x2, "iV2LLi", "nc", "simd128") -TARGET_BUILTIN(__builtin_wasm_bitmask_i8x16, "iV16Sc", "nc", "simd128") -TARGET_BUILTIN(__builtin_wasm_bitmask_i16x8, "iV8s", "nc", "simd128") -TARGET_BUILTIN(__builtin_wasm_bitmask_i32x4, "iV4i", "nc", "simd128") -TARGET_BUILTIN(__builtin_wasm_bitmask_i64x2, "iV2LLi", "nc", "simd128") +TARGET_BUILTIN(__builtin_wasm_bitmask_i8x16, "UiV16Sc", "nc", "simd128") +TARGET_BUILTIN(__builtin_wasm_bitmask_i16x8, "UiV8s", "nc", "simd128") +TARGET_BUILTIN(__builtin_wasm_bitmask_i32x4, "UiV4i", "nc", "simd128") +TARGET_BUILTIN(__builtin_wasm_bitmask_i64x2, "UiV2LLi", "nc", "simd128") TARGET_BUILTIN(__builtin_wasm_abs_f32x4, "V4fV4f", "nc", "simd128") TARGET_BUILTIN(__builtin_wasm_abs_f64x2, "V2dV2d", "nc", "simd128")
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits