56 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 42; RUN: opt < %s -S -mtriple=aarch64 -vector-library=ArmPL -passes=slp-vectorizer | FileCheck %s3 4@a = common global ptr null, align 85 6define void @frem_v2double() {7; CHECK-LABEL: define void @frem_v2double() {8; CHECK-NEXT: entry:9; CHECK-NEXT: [[TMP0:%.*]] = load <2 x double>, ptr @a, align 810; CHECK-NEXT: [[TMP1:%.*]] = load <2 x double>, ptr @a, align 811; CHECK-NEXT: [[TMP2:%.*]] = frem <2 x double> [[TMP0]], [[TMP1]]12; CHECK-NEXT: store <2 x double> [[TMP2]], ptr @a, align 813; CHECK-NEXT: ret void14;15entry:16 %a0 = load double, ptr getelementptr inbounds (double, ptr @a, i64 0), align 817 %a1 = load double, ptr getelementptr inbounds (double, ptr @a, i64 1), align 818 %b0 = load double, ptr getelementptr inbounds (double, ptr @a, i64 0), align 819 %b1 = load double, ptr getelementptr inbounds (double, ptr @a, i64 1), align 820 %r0 = frem double %a0, %b021 %r1 = frem double %a1, %b122 store double %r0, ptr getelementptr inbounds (double, ptr @a, i64 0), align 823 store double %r1, ptr getelementptr inbounds (double, ptr @a, i64 1), align 824 ret void25}26 27define void @frem_v4float() {28; CHECK-LABEL: define void @frem_v4float() {29; CHECK-NEXT: entry:30; CHECK-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr @a, align 831; CHECK-NEXT: [[TMP1:%.*]] = load <4 x float>, ptr @a, align 832; CHECK-NEXT: [[TMP2:%.*]] = frem <4 x float> [[TMP0]], [[TMP1]]33; CHECK-NEXT: store <4 x float> [[TMP2]], ptr @a, align 834; CHECK-NEXT: ret void35;36entry:37 %a0 = load float, ptr getelementptr inbounds (float, ptr @a, i64 0), align 838 %a1 = load float, ptr getelementptr inbounds (float, ptr @a, i64 1), align 839 %a2 = load float, ptr getelementptr inbounds (float, ptr @a, i64 2), align 840 %a3 = load float, ptr getelementptr inbounds (float, ptr @a, i64 3), align 841 %b0 = load float, ptr getelementptr inbounds (float, ptr @a, i64 0), align 842 %b1 = load float, ptr getelementptr inbounds (float, ptr @a, i64 1), align 843 %b2 = load float, ptr getelementptr inbounds (float, ptr @a, i64 2), align 844 %b3 = load float, ptr getelementptr inbounds (float, ptr @a, i64 3), align 845 %r0 = frem float %a0, %b046 %r1 = frem float %a1, %b147 %r2 = frem float %a2, %b248 %r3 = frem float %a3, %b349 store float %r0, ptr getelementptr inbounds (float, ptr @a, i64 0), align 850 store float %r1, ptr getelementptr inbounds (float, ptr @a, i64 1), align 851 store float %r2, ptr getelementptr inbounds (float, ptr @a, i64 2), align 852 store float %r3, ptr getelementptr inbounds (float, ptr @a, i64 3), align 853 ret void54}55 56