Fix SIMD codegen tests on LLVM 20 · rust-lang/rust@f895e31 (original) (raw)

`@@ -27,7 +27,7 @@ extern "rust-intrinsic" {

`

27

27

`// CHECK-LABEL: @reduce_any_32x2

`

28

28

`#[no_mangle]

`

29

29

`pub unsafe fn reduce_any_32x2(x: mask32x2) -> bool {

`

30

``

`-

// CHECK: [[A:%[0-9]+]] = lshr <2 x i32> %{{x|1}}, <i32 31, i32 31>

`

``

30

`+

// CHECK: [[A:%[0-9]+]] = lshr <2 x i32> %{{x|1}}, {{<i32 31, i32 31>|splat (i32 31)}}

`

31

31

`// CHECK: [[B:%[0-9]+]] = trunc <2 x i32> [[A]] to <2 x i1>

`

32

32

`// CHECK: [[C:%[0-9]+]] = call i1 @llvm.vector.reduce.or.v2i1(<2 x i1> [[B]])

`

33

33

`// CHECK: %{{[0-9]+}} = zext i1 [[C]] to i8

`

`@@ -37,7 +37,7 @@ pub unsafe fn reduce_any_32x2(x: mask32x2) -> bool {

`

37

37

`// CHECK-LABEL: @reduce_all_32x2

`

38

38

`#[no_mangle]

`

39

39

`pub unsafe fn reduce_all_32x2(x: mask32x2) -> bool {

`

40

``

`-

// CHECK: [[A:%[0-9]+]] = lshr <2 x i32> %{{x|1}}, <i32 31, i32 31>

`

``

40

`+

// CHECK: [[A:%[0-9]+]] = lshr <2 x i32> %{{x|1}}, {{<i32 31, i32 31>|splat (i32 31)}}

`

41

41

`// CHECK: [[B:%[0-9]+]] = trunc <2 x i32> [[A]] to <2 x i1>

`

42

42

`// CHECK: [[C:%[0-9]+]] = call i1 @llvm.vector.reduce.and.v2i1(<2 x i1> [[B]])

`

43

43

`// CHECK: %{{[0-9]+}} = zext i1 [[C]] to i8

`

`@@ -47,7 +47,7 @@ pub unsafe fn reduce_all_32x2(x: mask32x2) -> bool {

`

47

47

`// CHECK-LABEL: @reduce_any_8x16

`

48

48

`#[no_mangle]

`

49

49

`pub unsafe fn reduce_any_8x16(x: mask8x16) -> bool {

`

50

``

`-

// CHECK: [[A:%[0-9]+]] = lshr <16 x i8> %{{x|1}}, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>

`

``

50

`+

// CHECK: [[A:%[0-9]+]] = lshr <16 x i8> %{{x|1}}, {{<i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>|splat (i8 7)}}

`

51

51

`// CHECK: [[B:%[0-9]+]] = trunc <16 x i8> [[A]] to <16 x i1>

`

52

52

`// CHECK: [[C:%[0-9]+]] = call i1 @llvm.vector.reduce.or.v16i1(<16 x i1> [[B]])

`

53

53

`// CHECK: %{{[0-9]+}} = zext i1 [[C]] to i8

`

`@@ -57,7 +57,7 @@ pub unsafe fn reduce_any_8x16(x: mask8x16) -> bool {

`

57

57

`// CHECK-LABEL: @reduce_all_8x16

`

58

58

`#[no_mangle]

`

59

59

`pub unsafe fn reduce_all_8x16(x: mask8x16) -> bool {

`

60

``

`-

// CHECK: [[A:%[0-9]+]] = lshr <16 x i8> %{{x|1}}, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>

`

``

60

`+

// CHECK: [[A:%[0-9]+]] = lshr <16 x i8> %{{x|1}}, {{<i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>|splat (i8 7)}}

`

61

61

`// CHECK: [[B:%[0-9]+]] = trunc <16 x i8> [[A]] to <16 x i1>

`

62

62

`// CHECK: [[C:%[0-9]+]] = call i1 @llvm.vector.reduce.and.v16i1(<16 x i1> [[B]])

`

63

63

`// CHECK: %{{[0-9]+}} = zext i1 [[C]] to i8

`