]> granicus.if.org Git - llvm/commitdiff
[X86][AVX512] Add ISD::ROTL/ISD::ROTR constant folding tests
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 18 Jul 2017 11:18:38 +0000 (11:18 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 18 Jul 2017 11:18:38 +0000 (11:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308295 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/X86/avx512-rotate.ll

index 5ad562cc0220cc858b908f5ddf909ba136f27bc1..98fa67ad793d9d61883bd747bf5a021e3a7ab9a9 100644 (file)
@@ -234,3 +234,23 @@ define <8 x i64>@test_splat_bounds_ror_v8i64(<8 x i64> %x0, <8 x i64> %x1, i8 %x
   %res4 = add <8 x i64> %res3, %res2
   ret <8 x i64> %res4
 }
+
+; Constant folding
+
+define <8 x i64> @test_fold_rol_v8i64() {
+; CHECK-LABEL: test_fold_rol_v8i64:
+; CHECK:       # BB#0:
+; CHECK-NEXT:    vmovaps {{.*#+}} zmm0 = [1,2,4,9223372036854775808,2,4611686018427387904,9223372036854775808,9223372036854775808]
+; CHECK-NEXT:    retq
+  %res = call <8 x i64> @llvm.x86.avx512.mask.prolv.q.512(<8 x i64> <i64 1, i64 1, i64 1, i64 1, i64 1, i64 1, i64 1, i64 1>, <8 x i64> <i64 0, i64 1, i64 2, i64 63, i64 65, i64 65534, i64 65535, i64 -1>, <8 x i64> zeroinitializer, i8 -1)
+  ret <8 x i64> %res
+}
+
+define <8 x i64> @test_fold_ror_v8i64() {
+; CHECK-LABEL: test_fold_ror_v8i64:
+; CHECK:       # BB#0:
+; CHECK-NEXT:    vmovaps {{.*#+}} zmm0 = [1,9223372036854775808,4611686018427387904,2,9223372036854775808,4,2,2]
+; CHECK-NEXT:    retq
+  %res = call <8 x i64> @llvm.x86.avx512.mask.prorv.q.512(<8 x i64> <i64 1, i64 1, i64 1, i64 1, i64 1, i64 1, i64 1, i64 1>, <8 x i64> <i64 0, i64 1, i64 2, i64 63, i64 65, i64 65534, i64 65535, i64 -1>, <8 x i64> zeroinitializer, i8 -1)
+  ret <8 x i64> %res
+}