Lines Matching refs:trunc

12 ; CHECK-NEXT:    [[B:%.*]] = trunc i64 [[A:%.*]] to i32
17 %b = trunc i64 %a to i32
26 ; CHECK-NEXT: [[B:%.*]] = trunc <2 x i64> [[A:%.*]] to <2 x i32>
31 %b = trunc <2 x i64> %a to <2 x i32>
40 ; CHECK-NEXT: [[B:%.*]] = trunc <2 x i64> [[A:%.*]] to <2 x i32>
45 %b = trunc <2 x i64> %a to <2 x i32>
54 ; CHECK-NEXT: [[B:%.*]] = trunc <2 x i64> [[A:%.*]] to <2 x i32>
59 %b = trunc <2 x i64> %a to <2 x i32>
68 ; CHECK-NEXT: [[B:%.*]] = trunc i64 [[A:%.*]] to i32
74 %b = trunc i64 %a to i32
84 ; CHECK-NEXT: [[B:%.*]] = trunc <2 x i64> [[A:%.*]] to <2 x i32>
90 %b = trunc <2 x i64> %a to <2 x i32>
100 ; CHECK-NEXT: [[B:%.*]] = trunc <2 x i64> [[A:%.*]] to <2 x i32>
106 %b = trunc <2 x i64> %a to <2 x i32>
116 ; CHECK-NEXT: [[B:%.*]] = trunc <2 x i64> [[A:%.*]] to <2 x i32>
122 %b = trunc <2 x i64> %a to <2 x i32>
132 ; CHECK-NEXT: [[B:%.*]] = trunc i64 [[A:%.*]] to i32
137 %b = trunc i64 %a to i32
146 ; CHECK-NEXT: [[B:%.*]] = trunc i64 [[A:%.*]] to i32
152 %b = trunc i64 %a to i32
167 %D = trunc i128 %C to i32
174 ; CHECK-NEXT: [[D:%.*]] = trunc i64 [[TMP1]] to i32
179 %D = trunc i128 %C to i32
197 %E = trunc i32 %D to i16
213 %E = trunc i20 %D to i16
226 %T = trunc i36 %C to i32
239 %T = trunc <2 x i36> %C to <2 x i32>
251 %D = trunc i128 %C to i92
267 %G = trunc i128 %F to i64
283 %G = trunc <2 x i128> %F to <2 x i64>
299 %G = trunc <2 x i128> %F to <2 x i64>
309 ; CHECK-NEXT: [[G:%.*]] = trunc <2 x i128> [[F]] to <2 x i64>
316 %G = trunc <2 x i128> %F to <2 x i64>
322 ; CHECK-NEXT: [[TMP1:%.*]] = trunc i32 [[X:%.*]] to i8
327 %Z = trunc i32 %Y to i8
334 ; CHECK-NEXT: [[Y:%.*]] = trunc i32 [[X:%.*]] to i8
338 %Y = trunc i32 %X to i8
355 %G = trunc i128 %F to i64
371 %G = trunc <2 x i128> %F to <2 x i64>
387 %G = trunc <2 x i128> %F to <2 x i64>
397 ; CHECK-NEXT: [[G:%.*]] = trunc <2 x i128> [[F]] to <2 x i64>
404 %G = trunc <2 x i128> %F to <2 x i64>
420 %G = trunc i128 %F to i64
436 %G = trunc <2 x i128> %F to <2 x i64>
452 %G = trunc <2 x i128> %F to <2 x i64>
462 ; CHECK-NEXT: [[G:%.*]] = trunc <2 x i128> [[F]] to <2 x i64>
469 %G = trunc <2 x i128> %F to <2 x i64>
485 %G = trunc i128 %F to i64
501 %G = trunc <2 x i128> %F to <2 x i64>
517 %G = trunc <2 x i128> %F to <2 x i64>
527 ; CHECK-NEXT: [[G:%.*]] = trunc <2 x i128> [[F]] to <2 x i64>
534 %G = trunc <2 x i128> %F to <2 x i64>
549 %ext = trunc i128 %shr to i32
563 %ext = trunc i128 %shr to i32
575 %ext = trunc i128 %bc to i32
581 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc i64 [[VAL:%.*]] to i32
586 %trunc = trunc i64 %shl to i32
587 ret i32 %trunc
592 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc i64 [[VAL:%.*]] to i32
597 %trunc = trunc i64 %shl to i32
598 ret i32 %trunc
603 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc i64 [[VAL:%.*]] to i32
608 %trunc = trunc i64 %shl to i32
609 ret i32 %trunc
614 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc i64 [[VAL:%.*]] to i32
619 %trunc = trunc i64 %shl to i32
620 ret i32 %trunc
625 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc i64 [[VAL:%.*]] to i16
630 %trunc = trunc i64 %shl to i16
631 ret i16 %trunc
636 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc i32 [[VAL:%.*]] to i16
641 %trunc = trunc i32 %shl to i16
642 ret i16 %trunc
647 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc i64 [[VAL:%.*]] to i8
652 %trunc = trunc i64 %shl to i8
653 ret i8 %trunc
659 ; CHECK-NEXT: [[TRUNC:%.*]] = trunc i64 [[SHL]] to i2
663 %trunc = trunc i64 %shl to i2
664 ret i2 %trunc
669 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc i64 [[VAL:%.*]] to i32
674 %trunc = trunc i64 %shl to i32
675 ret i32 %trunc
680 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc i64 [[VAL:%.*]] to i32
685 %trunc = trunc i64 %shl to i32
686 ret i32 %trunc
694 %trunc = trunc i64 %shl to i32
695 ret i32 %trunc
703 %trunc = trunc i64 %shl to i32
704 ret i32 %trunc
710 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc <2 x i64> [[VAL:%.*]] to <2 x i32>
715 %trunc = trunc <2 x i64> %shl to <2 x i32>
716 ret <2 x i32> %trunc
721 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc <2 x i64> [[VAL:%.*]] to <2 x i32>
726 %trunc = trunc <2 x i64> %shl to <2 x i32>
727 ret <2 x i32> %trunc
733 ; CHECK-NEXT: [[TRUNC:%.*]] = trunc i64 [[SHL]] to i32
739 %trunc = trunc i64 %shl to i32
740 store volatile i32 %trunc, i32 addrspace(1)* %ptr0
747 ; CHECK-NEXT: [[ARG_TR:%.*]] = trunc i64 [[ARG:%.*]] to i32
754 %C = trunc i64 %B to i32
760 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc <2 x i64> [[VAL:%.*]] to <2 x i32>
765 %trunc = trunc <2 x i64> %shl to <2 x i32>
766 ret <2 x i32> %trunc
771 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc <2 x i64> [[VAL:%.*]] to <2 x i32>
776 %trunc = trunc <2 x i64> %shl to <2 x i32>
777 ret <2 x i32> %trunc
782 ; CHECK-NEXT: [[VAL_TR:%.*]] = trunc <2 x i64> [[VAL:%.*]] to <2 x i32>
787 %trunc = trunc <2 x i64> %shl to <2 x i32>
788 ret <2 x i32> %trunc
794 ; CHECK-NEXT: [[TRUNC:%.*]] = trunc <2 x i64> [[SHL]] to <2 x i32>
798 %trunc = trunc <2 x i64> %shl to <2 x i32>
799 ret <2 x i32> %trunc
805 ; CHECK-NEXT: [[TMP2:%.*]] = trunc i64 [[TMP1]] to i32
811 %C = trunc i64 %B to i32
817 ; CHECK-NEXT: [[ARG_TR:%.*]] = trunc i64 [[ARG:%.*]] to i32
823 %C = trunc i64 %B to i32
830 ; CHECK-NEXT: [[A_TR:%.*]] = trunc i64 [[A]] to i32
836 %C = trunc i64 %B to i32
843 ; CHECK-NEXT: [[A_TR:%.*]] = trunc i64 [[A]] to i32
849 %C = trunc i64 %B to i32
856 ; CHECK-NEXT: [[A_TR:%.*]] = trunc i64 [[A]] to i32
862 %C = trunc i64 %B to i32
868 ; CHECK-NEXT: [[A_TR:%.*]] = trunc <8 x i32> [[A:%.*]] to <8 x i16>
873 %conv = trunc <8 x i32> %shl to <8 x i16>
882 %conv = trunc <8 x i32> %shl to <8 x i16>
891 %conv = trunc <8 x i32> %shl to <8 x i16>
897 ; CHECK-NEXT: [[A_TR:%.*]] = trunc <8 x i32> [[A:%.*]] to <8 x i16>
902 %conv = trunc <8 x i32> %shl to <8 x i16>
907 ; trunc (shuffle X, C, Mask) --> shuffle (trunc X), C', Mask
912 ; CHECK-NEXT: [[TRUNC:%.*]] = trunc <4 x i32> [[SHUF]] to <4 x i8>
916 %trunc = trunc <4 x i32> %shuf to <4 x i8>
917 ret <4 x i8> %trunc
920 ; trunc (shuffle X, undef, SplatMask) --> shuffle (trunc X), undef, SplatMask
924 ; CHECK-NEXT: [[TMP1:%.*]] = trunc <4 x i32> [[X:%.*]] to <4 x i8>
929 %trunc = trunc <4 x i32> %shuf to <4 x i8>
930 ret <4 x i8> %trunc
934 ; trunc (shuffle X, undef, SplatMask) --> shuffle (trunc X), undef, SplatMask
938 ; CHECK-NEXT: [[TMP1:%.*]] = trunc <3 x i33> [[X:%.*]] to <3 x i31>
943 %trunc = trunc <3 x i33> %shuf to <3 x i31>
944 ret <3 x i31> %trunc
948 ; trunc (shuffle X, undef, SplatMask) --> shuffle (trunc X), undef, SplatMask
954 ; CHECK-NEXT: [[TRUNC:%.*]] = trunc <3 x i33> [[SHUF]] to <3 x i31>
958 %trunc = trunc <3 x i33> %shuf to <3 x i31>
959 ret <3 x i31> %trunc
967 ; CHECK-NEXT: [[TR:%.*]] = trunc <8 x i16> [[SHUF]] to <8 x i8>
971 %tr = trunc <8 x i16> %shuf to <8 x i8>
977 ; CHECK-NEXT: [[TMP1:%.*]] = trunc <2 x i32> [[X:%.*]] to <2 x i8>
982 %tr = trunc <2 x i32> %add to <2 x i8>
988 ; CHECK-NEXT: [[TMP1:%.*]] = trunc <2 x i32> [[X:%.*]] to <2 x i8>
993 %tr = trunc <2 x i32> %add to <2 x i8>
999 ; CHECK-NEXT: [[TMP1:%.*]] = trunc <2 x i32> [[X:%.*]] to <2 x i8>
1004 %tr = trunc <2 x i32> %sub to <2 x i8>
1013 ; CHECK-NEXT: [[TMP1:%.*]] = trunc i32 [[T0:%.*]] to i16
1020 %cast = trunc i32 %ffs to i16