@@ -557,9 +557,8 @@ define i64 @orr_32_eor_64() nounwind {
557557define i64 @movn_0_eon_lsl_17 () {
558558; CHECK-LABEL: movn_0_eon_lsl_17:
559559; CHECK: // %bb.0:
560- ; CHECK-NEXT: mov x0, #-4370 // =0xffffffffffffeeee
561- ; CHECK-NEXT: movk x0, #8738, lsl #16
562- ; CHECK-NEXT: movk x0, #65534, lsl #32
560+ ; CHECK-NEXT: mov x0, #-61167 // =0xffffffffffff1111
561+ ; CHECK-NEXT: eon x0, x0, x0, lsl #17
563562; CHECK-NEXT: ret
564563 ret i64 u0xfffffffe2222eeee
565564}
@@ -576,19 +575,17 @@ define i64 @movn_0_eon_lsl_32() {
576575define i64 @movn_0_eon_lsl_47 () {
577576; CHECK-LABEL: movn_0_eon_lsl_47:
578577; CHECK: // %bb.0:
579- ; CHECK-NEXT: mov x0, #61166 // =0xeeee
580- ; CHECK-NEXT: movk x0, #32768, lsl #32
581- ; CHECK-NEXT: movk x0, #34952, lsl #48
578+ ; CHECK-NEXT: mov x0, #-61167 // =0xffffffffffff1111
579+ ; CHECK-NEXT: eon x0, x0, x0, lsl #47
582580; CHECK-NEXT: ret
583581 ret i64 u0x888880000000eeee
584582}
585583
586584define i64 @movn_1_eon_lsl_17 () {
587585; CHECK-LABEL: movn_1_eon_lsl_17:
588586; CHECK: // %bb.0:
589- ; CHECK-NEXT: mov x0, #286261248 // =0x11100000
590- ; CHECK-NEXT: movk x0, #8739, lsl #32
591- ; CHECK-NEXT: movk x0, #65534, lsl #48
587+ ; CHECK-NEXT: mov x0, #-4008574977 // =0xffffffff1111ffff
588+ ; CHECK-NEXT: eon x0, x0, x0, lsl #17
592589; CHECK-NEXT: ret
593590 ret i64 u0xfffe222311100000
594591}
@@ -605,19 +602,17 @@ define i64 @movn_1_eon_lsl_32() {
605602define i64 @movn_1_eon_lsl_46 () {
606603; CHECK-LABEL: movn_1_eon_lsl_46:
607604; CHECK: // %bb.0:
608- ; CHECK-NEXT: mov x0, #4008509440 // =0xeeed0000
609- ; CHECK-NEXT: movk x0, #49152, lsl #32
610- ; CHECK-NEXT: movk x0, #49151, lsl #48
605+ ; CHECK-NEXT: mov x0, #-4008509441 // =0xffffffff1112ffff
606+ ; CHECK-NEXT: eon x0, x0, x0, lsl #46
611607; CHECK-NEXT: ret
612608 ret i64 u0xbfffc000eeed0000
613609}
614610
615611define i64 @movn_0_eor_lsl_17 () {
616612; CHECK-LABEL: movn_0_eor_lsl_17:
617613; CHECK: // %bb.0:
618- ; CHECK-NEXT: mov x0, #4369 // =0x1111
619- ; CHECK-NEXT: movk x0, #56797, lsl #16
620- ; CHECK-NEXT: movk x0, #1, lsl #32
614+ ; CHECK-NEXT: mov x0, #-61167 // =0xffffffffffff1111
615+ ; CHECK-NEXT: eor x0, x0, x0, lsl #17
621616; CHECK-NEXT: ret
622617 ret i64 u0x00000001dddd1111
623618}
@@ -635,18 +630,16 @@ define i64 @movn_0_eor_lsl_47() {
635630; CHECK-LABEL: movn_0_eor_lsl_47:
636631; CHECK: // %bb.0:
637632; CHECK-NEXT: mov x0, #-61167 // =0xffffffffffff1111
638- ; CHECK-NEXT: movk x0, #32767, lsl #32
639- ; CHECK-NEXT: movk x0, #30583, lsl #48
633+ ; CHECK-NEXT: eor x0, x0, x0, lsl #47
640634; CHECK-NEXT: ret
641635 ret i64 u0x77777fffffff1111
642636}
643637
644638define i64 @movn_1_eor_lsl_17 () {
645639; CHECK-LABEL: movn_1_eor_lsl_17:
646640; CHECK: // %bb.0:
647- ; CHECK-NEXT: mov x0, #-286261249 // =0xffffffffeeefffff
648- ; CHECK-NEXT: movk x0, #56796, lsl #32
649- ; CHECK-NEXT: movk x0, #1, lsl #48
641+ ; CHECK-NEXT: mov x0, #-4008574977 // =0xffffffff1111ffff
642+ ; CHECK-NEXT: eor x0, x0, x0, lsl #17
650643; CHECK-NEXT: ret
651644 ret i64 u0x0001dddceeefffff
652645}
@@ -663,42 +656,38 @@ define i64 @movn_1_eor_lsl_32() {
663656define i64 @movn_1_eor_lsl_46 () {
664657; CHECK-LABEL: movn_1_eor_lsl_46:
665658; CHECK: // %bb.0:
666- ; CHECK-NEXT: mov x0, #-4008509441
667- ; CHECK-NEXT: movk x0, #16383, lsl #32
668- ; CHECK-NEXT: movk x0, #16384, lsl #48
659+ ; CHECK-NEXT: mov x0, #-4008509441 // =0xffffffff1112ffff
660+ ; CHECK-NEXT: eor x0, x0, x0, lsl #46
669661; CHECK-NEXT: ret
670662 ret i64 u0x40003fff1112ffff
671663}
672664
673665define i64 @movn_movk_eon_lsl_17 () {
674666; CHECK-LABEL: movn_movk_eon_lsl_17:
675667; CHECK: // %bb.0:
676- ; CHECK-NEXT: mov x0, #43399 // =0xa987
677- ; CHECK-NEXT: movk x0, #16699, lsl #16
678- ; CHECK-NEXT: movk x0, #9320, lsl #32
679- ; CHECK-NEXT: movk x0, #65534, lsl #48
668+ ; CHECK-NEXT: mov x0, #-43400 // =0xffffffffffff5678
669+ ; CHECK-NEXT: movk x0, #4660, lsl #16
670+ ; CHECK-NEXT: eon x0, x0, x0, lsl #17
680671; CHECK-NEXT: ret
681672 ret i64 u0xfffe2468413ba987
682673}
683674
684675define i64 @movn_movk_eon_lsl_47 () {
685676; CHECK-LABEL: movn_movk_eon_lsl_47:
686677; CHECK: // %bb.0:
687- ; CHECK-NEXT: mov x0, #61166 // =0xeeee
688- ; CHECK-NEXT: movk x0, #21554, lsl #16
689- ; CHECK-NEXT: movk x0, #32768, lsl #32
690- ; CHECK-NEXT: movk x0, #34952, lsl #48
678+ ; CHECK-NEXT: mov x0, #-61167 // =0xffffffffffff1111
679+ ; CHECK-NEXT: movk x0, #43981, lsl #16
680+ ; CHECK-NEXT: eon x0, x0, x0, lsl #47
691681; CHECK-NEXT: ret
692682 ret i64 u0x888880005432eeee
693683}
694684
695685define i64 @movn_movk_eor_lsl_17 () {
696686; CHECK-LABEL: movn_movk_eor_lsl_17:
697687; CHECK: // %bb.0:
698- ; CHECK-NEXT: mov x0, #22136 // =0x5678
699- ; CHECK-NEXT: movk x0, #48836, lsl #16
700- ; CHECK-NEXT: movk x0, #56215, lsl #32
701- ; CHECK-NEXT: movk x0, #1, lsl #48
688+ ; CHECK-NEXT: mov x0, #-43400 // =0xffffffffffff5678
689+ ; CHECK-NEXT: movk x0, #4660, lsl #16
690+ ; CHECK-NEXT: eor x0, x0, x0, lsl #17
702691; CHECK-NEXT: ret
703692 ret i64 u0x0001db97bec45678
704693}
@@ -716,10 +705,9 @@ define i64 @movn_movk_eor_lsl_32() {
716705define i64 @movn_movk_eor_lsl_47 () {
717706; CHECK-LABEL: movn_movk_eor_lsl_47:
718707; CHECK: // %bb.0:
719- ; CHECK-NEXT: mov x0, #4369 // =0x1111
708+ ; CHECK-NEXT: mov x0, #-61167 // =0xffffffffffff1111
720709; CHECK-NEXT: movk x0, #43981, lsl #16
721- ; CHECK-NEXT: movk x0, #32767, lsl #32
722- ; CHECK-NEXT: movk x0, #30583, lsl #48
710+ ; CHECK-NEXT: eor x0, x0, x0, lsl #47
723711; CHECK-NEXT: ret
724712 ret i64 u0x77777fffabcd1111
725713}
0 commit comments